diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,6); + dataString =str1+str2; + return dataString; + } +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return productRepairRecordsList; + } +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT pt.`devmode_id` FROM product_device pd + LEFT JOIN product_batch pb ON pd.`batch_id`= pb.`id` + LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` + WHERE pd.`devcode`= #{devcode} LIMIT 1 +
diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + +
diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + +
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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + +
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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + +
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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + +
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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + +
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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + +
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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + +
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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + +
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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1c54b04..eef713e 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,15 +3,15 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! 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 + 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\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1c54b04..eef713e 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,15 +3,15 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! 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 + 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\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx index 71e3f4a..871fa15 100644 --- a/casic-web/src/main/resources/excel/contractImp.xlsx +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1c54b04..eef713e 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,15 +3,15 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! 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 + 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\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx index 71e3f4a..871fa15 100644 --- a/casic-web/src/main/resources/excel/contractImp.xlsx +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx new file mode 100644 index 0000000..2986ec1 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx Binary files differ diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1c54b04..eef713e 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,15 +3,15 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! 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 + 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\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx index 71e3f4a..871fa15 100644 --- a/casic-web/src/main/resources/excel/contractImp.xlsx +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx new file mode 100644 index 0000000..2986ec1 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx index 516a5a6..308b35f 100644 --- a/casic-web/src/main/resources/excel/devTypeImp.xlsx +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1c54b04..eef713e 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,15 +3,15 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! 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 + 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\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx index 71e3f4a..871fa15 100644 --- a/casic-web/src/main/resources/excel/contractImp.xlsx +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx new file mode 100644 index 0000000..2986ec1 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx index 516a5a6..308b35f 100644 --- a/casic-web/src/main/resources/excel/devTypeImp.xlsx +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceImp.xlsx b/casic-web/src/main/resources/excel/deviceImp.xlsx new file mode 100644 index 0000000..0c6f31f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceImp.xlsx Binary files differ diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1c54b04..eef713e 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,15 +3,15 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! 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 + 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\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx index 71e3f4a..871fa15 100644 --- a/casic-web/src/main/resources/excel/contractImp.xlsx +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx new file mode 100644 index 0000000..2986ec1 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx index 516a5a6..308b35f 100644 --- a/casic-web/src/main/resources/excel/devTypeImp.xlsx +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceImp.xlsx b/casic-web/src/main/resources/excel/deviceImp.xlsx new file mode 100644 index 0000000..0c6f31f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceList.xlsx b/casic-web/src/main/resources/excel/deviceList.xlsx new file mode 100644 index 0000000..ebc172f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceList.xlsx Binary files differ diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1c54b04..eef713e 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,15 +3,15 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! 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 + 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\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx index 71e3f4a..871fa15 100644 --- a/casic-web/src/main/resources/excel/contractImp.xlsx +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx new file mode 100644 index 0000000..2986ec1 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx index 516a5a6..308b35f 100644 --- a/casic-web/src/main/resources/excel/devTypeImp.xlsx +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceImp.xlsx b/casic-web/src/main/resources/excel/deviceImp.xlsx new file mode 100644 index 0000000..0c6f31f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceList.xlsx b/casic-web/src/main/resources/excel/deviceList.xlsx new file mode 100644 index 0000000..ebc172f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceTypeList.xlsx b/casic-web/src/main/resources/excel/deviceTypeList.xlsx index f4121d8..bc93325 100644 --- a/casic-web/src/main/resources/excel/deviceTypeList.xlsx +++ b/casic-web/src/main/resources/excel/deviceTypeList.xlsx Binary files differ diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1c54b04..eef713e 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,15 +3,15 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! 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 + 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\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx index 71e3f4a..871fa15 100644 --- a/casic-web/src/main/resources/excel/contractImp.xlsx +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx new file mode 100644 index 0000000..2986ec1 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx index 516a5a6..308b35f 100644 --- a/casic-web/src/main/resources/excel/devTypeImp.xlsx +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceImp.xlsx b/casic-web/src/main/resources/excel/deviceImp.xlsx new file mode 100644 index 0000000..0c6f31f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceList.xlsx b/casic-web/src/main/resources/excel/deviceList.xlsx new file mode 100644 index 0000000..ebc172f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceTypeList.xlsx b/casic-web/src/main/resources/excel/deviceTypeList.xlsx index f4121d8..bc93325 100644 --- a/casic-web/src/main/resources/excel/deviceTypeList.xlsx +++ b/casic-web/src/main/resources/excel/deviceTypeList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/factoryImp.xlsx b/casic-web/src/main/resources/excel/factoryImp.xlsx index 1054f71..bf2dedf 100644 --- a/casic-web/src/main/resources/excel/factoryImp.xlsx +++ b/casic-web/src/main/resources/excel/factoryImp.xlsx Binary files differ diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1c54b04..eef713e 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,15 +3,15 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! 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 + 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\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx index 71e3f4a..871fa15 100644 --- a/casic-web/src/main/resources/excel/contractImp.xlsx +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx new file mode 100644 index 0000000..2986ec1 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx index 516a5a6..308b35f 100644 --- a/casic-web/src/main/resources/excel/devTypeImp.xlsx +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceImp.xlsx b/casic-web/src/main/resources/excel/deviceImp.xlsx new file mode 100644 index 0000000..0c6f31f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceList.xlsx b/casic-web/src/main/resources/excel/deviceList.xlsx new file mode 100644 index 0000000..ebc172f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceTypeList.xlsx b/casic-web/src/main/resources/excel/deviceTypeList.xlsx index f4121d8..bc93325 100644 --- a/casic-web/src/main/resources/excel/deviceTypeList.xlsx +++ b/casic-web/src/main/resources/excel/deviceTypeList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/factoryImp.xlsx b/casic-web/src/main/resources/excel/factoryImp.xlsx index 1054f71..bf2dedf 100644 --- a/casic-web/src/main/resources/excel/factoryImp.xlsx +++ b/casic-web/src/main/resources/excel/factoryImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/repairsList.xlsx b/casic-web/src/main/resources/excel/repairsList.xlsx new file mode 100644 index 0000000..7c6edf1 --- /dev/null +++ b/casic-web/src/main/resources/excel/repairsList.xlsx Binary files differ diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1c54b04..eef713e 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,15 +3,15 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! 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 + 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\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx index 71e3f4a..871fa15 100644 --- a/casic-web/src/main/resources/excel/contractImp.xlsx +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx new file mode 100644 index 0000000..2986ec1 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx index 516a5a6..308b35f 100644 --- a/casic-web/src/main/resources/excel/devTypeImp.xlsx +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceImp.xlsx b/casic-web/src/main/resources/excel/deviceImp.xlsx new file mode 100644 index 0000000..0c6f31f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceList.xlsx b/casic-web/src/main/resources/excel/deviceList.xlsx new file mode 100644 index 0000000..ebc172f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceTypeList.xlsx b/casic-web/src/main/resources/excel/deviceTypeList.xlsx index f4121d8..bc93325 100644 --- a/casic-web/src/main/resources/excel/deviceTypeList.xlsx +++ b/casic-web/src/main/resources/excel/deviceTypeList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/factoryImp.xlsx b/casic-web/src/main/resources/excel/factoryImp.xlsx index 1054f71..bf2dedf 100644 --- a/casic-web/src/main/resources/excel/factoryImp.xlsx +++ b/casic-web/src/main/resources/excel/factoryImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/repairsList.xlsx b/casic-web/src/main/resources/excel/repairsList.xlsx new file mode 100644 index 0000000..7c6edf1 --- /dev/null +++ b/casic-web/src/main/resources/excel/repairsList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/taskImp.xlsx b/casic-web/src/main/resources/excel/taskImp.xlsx new file mode 100644 index 0000000..6fec8e3 --- /dev/null +++ b/casic-web/src/main/resources/excel/taskImp.xlsx Binary files differ diff --git a/casic-app/pom.xml b/casic-app/pom.xml index 9add040..320765b 100644 --- a/casic-app/pom.xml +++ b/casic-app/pom.xml @@ -70,6 +70,11 @@ org.apache.commons commons-lang3 + + com.casic + casic-file + ${casic.version} + @@ -79,6 +84,7 @@ **/*.xml + true 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 8514576..46c47ee 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 @@ -5,17 +5,33 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonFileService; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.ICommonUserService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.dto.SelectDTO; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; /** * 施工添加设备控制器 @@ -30,7 +46,12 @@ @Resource private IAppDeviceAddService appDeviceAddService; - + @Resource + private IAppDeviceLogService appDeviceLogService; + @Resource + private ICommonFileService commonFileService; + @Resource + private ICommonPermissionService permissionService; /** * 获取施工添加设备列表 @@ -65,7 +86,13 @@ if (CollectionUtils.isNotEmpty(appDeviceAddList)) { return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { + appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } appDeviceAddService.insert(appDeviceAdd); + if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { + appDeviceLogService.insert(new AppDeviceLog(appDeviceAdd)); + } return ResponseData.success(); } @@ -99,4 +126,57 @@ 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)); + + } + + @RequestMapping({"/getWellTypeList"}) + @ResponseBody + public Object getWellTypeList() { + List selectDTOList = new ArrayList<>(); + List dictList = permissionService.findInDictByCode("sluicewellType"); + for (Dict dict : dictList) { + SelectDTO selectDTO = new SelectDTO(); + selectDTO.setText(dict.getName()); + selectDTO.setValue(dict.getCode()); + selectDTOList.add(selectDTO); + } + return selectDTOList; + } + + + /** + * 按照设备编号查询 + */ + @RequestMapping(value = "/findListByCodes") + @ResponseBody + public Object findListByCodes(String devcodes) { + List list = ToolUtil.isNotEmpty(devcodes) ? + Arrays.asList(devcodes.split(",")) : + new ArrayList() {{ + add(""); + }}; + EntityWrapper query = new EntityWrapper<>(); + query.in("devcode", list); + return ResponseData.success(appDeviceAddService.selectList(query)); + } + + /**a * 按照设备编号查询 + */ + @RequestMapping(value = "/findModeCodeByCode") + @ResponseBody + public Object findModeCodeByCode(String devcode) { + return appDeviceAddService.findModeCodeByCode(devcode); + } } 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 a7733d8..7eb0dbc 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 @@ -6,10 +6,13 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; +import com.casic.missiles.modular.app.util.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -22,12 +25,12 @@ * 施工添加设备控制器 * * @author dev - * @Date 2020-05-24 11:21:38 + * @Date 2020-05-24 11:21:38a */ @Controller @RequestMapping("/appDeviceLog") public class AppDeviceLogController extends BaseController { - + private static String specialStr = "undefined"; @Resource private IAppDeviceLogService appDeviceLogService; @@ -50,10 +53,23 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = appDeviceLogService.selectPage(page, query); + public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { + query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + } + if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceAddService.selectPage(page, query); return new SuccessResponseData(super.packForBT(page)); } @@ -63,11 +79,15 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceLog appDeviceLog) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceLog.getDevcode()); - appDeviceAddService.updateBatchById(appDeviceAddList); + + appDeviceAddService.updateBatchById(AppDeviceAdd.convert(appDeviceAddList, appDeviceLog)); return ResponseData.success(); } @@ -102,4 +122,43 @@ } + /** + * 获取施工添加设备分页列表 + */ + @RequestMapping(value = "/deviceDetail") + @ResponseBody + public Object deviceDetail(String devcode) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", devcode); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectOne(ew); + + EntityWrapper query = new EntityWrapper<>(); + query.eq("devcode", devcode); + query.orderBy("id", false); + List appDeviceLogList = appDeviceLogService.selectList(query); + String logs = ""; + for (AppDeviceLog appDeviceLog : appDeviceLogList) { + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { + appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + } + logs += appDeviceLog.getInstalltimeFmt() + ":" + + appDeviceLog.getInstallperson() + "," + + appDeviceLog.getDescription() + ";\n"; + } + if (null != appDeviceAdd) { + if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + + } + appDeviceAdd.setLogs(logs); + } + if(appDeviceLogList.size()>0){ + appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); + appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); + appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); + } + return new SuccessResponseData(appDeviceAdd); + } + + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java index 4b9be7a..18f1929 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/AppDeviceAddMapper.java @@ -2,10 +2,11 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.apache.ibatis.annotations.Param; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 @@ -13,4 +14,6 @@ */ public interface AppDeviceAddMapper extends BaseMapper { + String findModeCodeByCode(@Param("devcode") String devcode); + } 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 07ead85..dba6207 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 @@ -1,6 +1,6 @@ - + @@ -29,4 +29,11 @@ id, devcode, wellcode, welltype, welldepth, installheigt, installperson, installtime, photopath, factory, project, workmsg, position, description, createtime, longitude, latitude, devicetype + + diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java new file mode 100644 index 0000000..5c91b6a --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dto/SelectDTO.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.app.dto; + +public class SelectDTO { + private String text; + private String value; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 61862b2..1385e2c 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 @@ -2,16 +2,24 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; + +import java.util.ArrayList; import java.util.Date; + import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; +import java.util.List; /** *

- * + * *

* * @author stylefeng123 @@ -55,10 +63,21 @@ * 安装时间 */ private Date installtime; - /**ap - * 照片路径 + /** + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +115,12 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + + @TableField(exist = false) + private String logs; + public Long getId() { return id; @@ -161,13 +186,6 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; - } - - public void setPhotopath(String photopath) { - this.photopath = photopath; - } public String getFactory() { return factory; @@ -241,6 +259,46 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + + public String getLogs() { + return logs; + } + + public void setLogs(String logs) { + this.logs = logs; + } + + 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; + } + @Override protected Serializable pkVal() { return this.id; @@ -249,24 +307,62 @@ @Override public String toString() { return "AppDeviceAdd{" + - "id=" + id + - ", devcode=" + devcode + - ", wellcode=" + wellcode + - ", welltype=" + welltype + - ", welldepth=" + welldepth + - ", installheigt=" + installheigt + - ", installperson=" + installperson + - ", installtime=" + installtime + - ", photopath=" + photopath + - ", factory=" + factory + - ", project=" + project + - ", workmsg=" + workmsg + - ", position=" + position + - ", description=" + description + - ", createtime=" + createtime + - ", longitude=" + longitude + - ", latitude=" + latitude + - ", devicetype=" + devicetype + - "}"; + "id=" + id + + ", devcode=" + devcode + + ", wellcode=" + wellcode + + ", welltype=" + welltype + + ", welldepth=" + welldepth + + ", installheigt=" + installheigt + + ", installperson=" + installperson + + ", installtime=" + installtime + + ", factory=" + factory + + ", project=" + project + + ", workmsg=" + workmsg + + ", position=" + position + + ", description=" + description + + ", createtime=" + createtime + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", devicetype=" + devicetype + + "}"; + } + + public AppDeviceAdd() { + } + + public static AppDeviceAdd appDeviceLogFormt(AppDeviceAdd appDeviceAdd, AppDeviceLog appDeviceLog) { + if (null == appDeviceLog) { + return appDeviceAdd; + } + appDeviceAdd.devcode = appDeviceLog.getDevcode(); + appDeviceAdd.wellcode = appDeviceLog.getWellcode(); + appDeviceAdd.welltype = appDeviceLog.getWelltype(); + appDeviceAdd.welldepth = appDeviceLog.getWelldepth(); + appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); + appDeviceAdd.installperson = appDeviceLog.getInstallperson(); + if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { + appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + } +// appDeviceAdd.photopath = appDeviceLog.getPhotopath(); + appDeviceAdd.factory = appDeviceLog.getFactory(); + appDeviceAdd.project = appDeviceLog.getProject(); + appDeviceAdd.workmsg = appDeviceLog.getWorkmsg(); + appDeviceAdd.position = appDeviceLog.getPosition(); + appDeviceAdd.description = appDeviceLog.getDescription(); + appDeviceAdd.longitude = appDeviceLog.getLongitude(); + appDeviceAdd.latitude = appDeviceLog.getLatitude(); + appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.createtime = new Date(); + return appDeviceAdd; + + } + + public static List convert(List appDeviceAdds, + AppDeviceLog appDeviceLog) { + List appDeviceAddList = new ArrayList<>(); + for (AppDeviceAdd appDeviceAdd : appDeviceAdds) { + appDeviceAddList.add(appDeviceLogFormt(appDeviceAdd, appDeviceLog)); + } + return appDeviceAddList; } } 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 1be81fb..2c4a7be 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 @@ -2,11 +2,15 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; + import java.io.Serializable; /** @@ -56,9 +60,20 @@ */ private Date installtime; /** - * 照片路径 + * + * 照片路径1 */ - private String photopath; + private String photopath1; + /** + * + * 照片路径2 + */ + private String photopath2; + /** + * + * 照片路径3 + */ + private String photopath3; /** * 权属单位 */ @@ -96,6 +111,9 @@ */ private String devicetype; + @TableField(exist = false) + private String installtimeFmt; + public Long getId() { return id; @@ -161,12 +179,28 @@ this.installtime = installtime; } - public String getPhotopath() { - return photopath; + public String getPhotopath1() { + return photopath1; } - public void setPhotopath(String photopath) { - this.photopath = photopath; + 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 getFactory() { @@ -241,6 +275,14 @@ this.devicetype = devicetype; } + public String getInstalltimeFmt() { + return installtimeFmt; + } + + public void setInstalltimeFmt(String installtimeFmt) { + this.installtimeFmt = installtimeFmt; + } + @Override protected Serializable pkVal() { return this.id; @@ -257,7 +299,6 @@ ", installheigt=" + installheigt + ", installperson=" + installperson + ", installtime=" + installtime + - ", photopath=" + photopath + ", factory=" + factory + ", project=" + project + ", workmsg=" + workmsg + @@ -269,4 +310,32 @@ ", devicetype=" + devicetype + "}"; } + + public AppDeviceLog() { + } + + public AppDeviceLog(AppDeviceAdd appDeviceAdd) { + this.devcode = appDeviceAdd.getDevcode(); + this.wellcode = appDeviceAdd.getWellcode(); + this.welltype = appDeviceAdd.getWelltype(); + this.welldepth = appDeviceAdd.getWelldepth(); + this.installheigt = appDeviceAdd.getInstallheigt(); + this.installperson = appDeviceAdd.getInstallperson(); + if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ + this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + } +// this.photopath = appDeviceAdd.getPhotopath(); + this.photopath1 = appDeviceAdd.getPhotopath1(); + this.photopath2 = appDeviceAdd.getPhotopath2(); + this.photopath3 = appDeviceAdd.getPhotopath3(); + this.factory = appDeviceAdd.getFactory(); + this.project = appDeviceAdd.getProject(); + this.workmsg = appDeviceAdd.getWorkmsg(); + this.position = appDeviceAdd.getPosition(); + this.description = appDeviceAdd.getDescription(); + this.longitude = appDeviceAdd.getLongitude(); + this.latitude = appDeviceAdd.getLatitude(); + this.devicetype = appDeviceAdd.getDevicetype(); + + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d1aaf2a..d3f2c53 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceAdd; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -16,4 +18,6 @@ public interface IAppDeviceAddService extends IService { List getAppDevice(String devcode); + String saveFile(MultipartFile var1) throws IOException; + String findModeCodeByCode(String devcode); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index c5d7e5a..083caac 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.modular.app.model.AppDeviceLog; +import java.util.List; + /** *

* 服务类 @@ -13,4 +15,5 @@ */ public interface IAppDeviceLogService extends IService { + List getListByCode(String devcode); } 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 e6a43b4..5a3ce82 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 @@ -5,9 +5,16 @@ import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.UUID; /** *

@@ -20,6 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { + @Value("${casic.file-download-path}") + private String downloadPath; @Override public List getAppDevice(String devcode) { @@ -28,4 +37,28 @@ return selectList(ew); } + + @Override + 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); + 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; + } else { + return null; + } + } + + @Override + public String findModeCodeByCode(String devcode) { + return this.baseMapper.findModeCodeByCode(devcode); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 50d83e8..22a1665 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.app.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,10 @@ @Service public class AppDeviceLogServiceImpl extends ServiceImpl implements IAppDeviceLogService { + @Override + public List getListByCode(String devcode) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devcode",devcode); + return this.selectList(entityWrapper); + } } 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 new file mode 100644 index 0000000..852d420 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.app.util; + +import java.text.SimpleDateFormat; + +/** + * 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"); + + public static String DateFormat(String dataString) { + + String strymd = dataString.substring(0, 8); + String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " "; + String strhms = dataString.substring(8); + String str2 =strhms.substring(0,2)+":"+strhms.substring(2,4)+":"+strhms.substring(4,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 793d484..94d7e40 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 @@ -3,18 +3,34 @@ 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.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备控制器 @@ -29,7 +45,8 @@ @Autowired private IDeviceService deviceService; - + @Value("${casic.file-download-path}") + private String downloadPath; /** * 获取设备列表 @@ -45,12 +62,13 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = deviceService.selectPage(page,query); + public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + Page page = new PageFactory().defaultPage(); + List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增设备 */ @@ -91,5 +109,135 @@ 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, + Long devTypeId, + String devcode, + String pm, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + + List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 设备下拉接口 + */ + @RequestMapping(value = "/getDevice") + @ResponseBody + public Object getDevice() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List deviceList = deviceService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceList); + } + + + + /** + * 用于前期设备批量导入 + */ + @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 cdfd69f..1c59286 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 @@ -1,7 +1,12 @@ package com.casic.missiles.modular.device.service; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Project; + +import java.util.List; /** *

@@ -13,4 +18,24 @@ */ public interface IDeviceService extends IService { + /** + * 批量导入设备详情列表 + * @param results + */ + void importDevice(List results); + + List selectPageList(Page page, + 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); } 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 77f41b1..2aa214e 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 @@ -1,14 +1,24 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dto.DeviceDto; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.device.service.IDeviceService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

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

* * @author stylefeng123 @@ -17,4 +27,73 @@ @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + @Autowired + private ITaskService taskService; + 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); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + 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); + } + + + @Override + public List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm) { + List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + for (DeviceDto deviceDto : deviceDtoList) { + deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : + ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return deviceDtoList; + } + + @Override + public String getProjectBydevcode(String devcode) { + return this.baseMapper.getProjectBydevcode(devcode); + } + + + @Override + public String getDevTypeBydevcode(String devcode) { + return this.baseMapper.getDevTypeBydevcode(devcode); + } } 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 new file mode 100644 index 0000000..7cb1f60 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -0,0 +1,192 @@ +package com.casic.missiles.modular.repairs.controller; + +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.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.service.IDeviceService; +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.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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 设备履历控制器 + * + * @author dev + * @Date 2020-06-16 13:49:42 + */ +@Controller +@RequestMapping("/productRepairRecords") +public class ProductRepairRecordsController extends BaseController { + + + @Autowired + private IProductRepairRecordsService productRepairRecordsService; + @Autowired + private ITaskService taskService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + @Value("${casic.file-download-path}") + private String downloadPath; + /** + * 获取设备履历列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productRepairRecordsService.selectList(null); + } + + /** + * 获取设备履历分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String devcode, String begTime, String endTime) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + page = productRepairRecordsService.selectPage(page, query); + List productRepairRecordsList = page.getRecords(); + 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():""); + } + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增设备履历 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.insert(productRepairRecords); + Task task = taskService.selectById(productRepairRecords.getTaskid()); + if ("1".equals(productRepairRecords.getIschange()) && null != task && + ToolUtil.isNotEmpty(task.getRemaincount())) { + if (task.getRemaincount() < 1) + return ResponseData.error("备货任务单已无设备"); + task.setRemaincount(task.getRemaincount() - 1); + } + return ResponseData.success(); + } + + /** + * 删除设备履历 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productRepairRecordsId) { + productRepairRecordsService.deleteById(productRepairRecordsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productRepairRecordsIds") List productRepairRecordsIds) { + productRepairRecordsService.deleteBatchIds(productRepairRecordsIds); + return ResponseData.success(); + } + + /** + * 修改设备履历 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(ProductRepairRecords productRepairRecords, + String returntimeFmt, String finishtimeFmt) { + + productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? + Timestamp.valueOf(returntimeFmt) : null); + productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? + Timestamp.valueOf(finishtimeFmt) : null); + productRepairRecordsService.updateById(productRepairRecords); + return ResponseData.success(); + } + + /** + * 设备履历详情 + */ + @RequestMapping(value = "/detail/{productRepairRecordsId}") + @ResponseBody + public Object detail(@PathVariable("productRepairRecordsId") String productRepairRecordsId) { + + ProductRepairRecords productRepairRecords = productRepairRecordsService.selectById(productRepairRecordsId); + return new SuccessResponseData(productRepairRecords); + } + + /** + * 导出履历列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String devcode = httpServletRequest.getParameter("devcode"); + String begTime = httpServletRequest.getParameter("begTime"); + String endTime = httpServletRequest.getParameter("endTime"); + List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "repairsList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } +} 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 new file mode 100644 index 0000000..15b9eb8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.repairs.service; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface IProductRepairRecordsService extends IService { + List reportExport(String devcode, String begTime, String endTime); +} 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 new file mode 100644 index 0000000..9c37938 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.repairs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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.repairs.service.IProductRepairRecordsService; +import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +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.IProductDeviceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@Service +public class ProductRepairRecordsServiceImpl extends ServiceImpl implements IProductRepairRecordsService { + + @Autowired + private IProductDeviceTypeService productDeviceTypeService; + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List reportExport(String devcode, String begTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.eq("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("returntime", DateUtil.parseTime(begTime)); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("returntime", DateUtil.parseTime(endTime)); + } + List productRepairRecordsList = this.selectList(query); + for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { + ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); + productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + } + return 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 ecd033b..5ee1e20 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 @@ -149,8 +149,6 @@ contractService.updateById(contract1); return ResponseData.success(); } - - /** * 导出合同列表 */ @@ -213,14 +211,12 @@ row.shutdown(); } }); - contractService.importContract(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java index b24efa2..5f00f0b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -9,12 +9,13 @@ import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.DeviceTypeDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.ProductDeviceType; -import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.FileUtil; @@ -30,10 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; @@ -112,7 +110,10 @@ //上传汇总表 if (null != quotaSummaryFile && StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + String fileName=quotaSummaryFile.getOriginalFilename(); + String destName=FileUtil.getOriginalFilename(fileName)+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = FileUtil.createFile(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -151,7 +152,11 @@ //上传汇总表 if (null != quotaSummaryFile && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { - String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + + String fileName=FileUtil.getOriginalFilename(quotaSummaryFile.getOriginalFilename()); + String destName=fileName.substring(0,fileName.lastIndexOf("."))+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+ + fileName.substring(fileName.lastIndexOf(".")); + String path = uploadPath + destName; File newFile = new File(path); quotaSummaryFile.transferTo(newFile); productDeviceType.setQuotaSummary(path); @@ -173,9 +178,12 @@ Map mapper = new HashMap<>(); mapper.put("产品名称", "productName"); mapper.put("型号", "productModel"); + mapper.put("产品类型", "productType"); + mapper.put("设备版本", "communicationVersion"); mapper.put("整机版本号", "machineVersion"); mapper.put("硬件版本号", "hardwareVersion"); mapper.put("软件版本号", "softwareVersion"); + mapper.put("批产负责人", "principal"); mapper.put("设计归档", "designArchive"); mapper.put("批产归档", "batchFiling"); mapper.put("状态", "statusFmt"); @@ -257,9 +265,12 @@ */ @RequestMapping(value = "/getUser") @ResponseBody - public Object detail() { - List userList = permissionService.getAllUsers(""); - return ResponseData.success(200, "", userList); + public Object detail(String tips) { +// List userList = permissionService.getAllUsers(""); + List userDtoList=productDeviceTypeService.getUser(tips); + return ResponseData.success(200, "", userDtoList); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java index cea6e46..259f1ca 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -8,7 +8,6 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; -import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductFactoryInformation; import com.casic.missiles.modular.system.service.IProductFactoryInformationService; import com.casic.missiles.modular.system.util.FileUtil; @@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -92,7 +90,7 @@ //上传设备报价表 if (ToolUtil.isNotEmpty(equipmentFile) && ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File newFile = FileUtil.createFile(path); equipmentFile.transferTo(newFile); productFactoryInformation.setEquipmentQuotation(path); @@ -131,7 +129,7 @@ //上传设备价格表 if (null != equipmentFile && StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { - String path = uploadPath + equipmentFile.getOriginalFilename(); + String path = uploadPath + FileUtil.getOriginalFilename(equipmentFile.getOriginalFilename()); File file = FileUtil.createFile(path); equipmentFile.transferTo(file); productFactoryInformation.setEquipmentQuotation(path); @@ -190,6 +188,7 @@ @ResponseBody public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + String msg=""; List results = new ArrayList<>(); //设置表头与字段映射,可通过反射获取 Map mapper = new HashMap<>(); @@ -216,14 +215,15 @@ row.shutdown(); } }); - productFactoryInformationService.importDeviceType(results); + msg= productFactoryInformationService.importDeviceType(results); } } catch (Exception e) { e.printStackTrace(); return new ErrorResponseData("导入设备类型列表失败"); } - return ResponseData.success(); + return ResponseData.success(200,msg,null); +// return new SuccessResponseData(msg); } /** 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 9ee1537..b57ce8e 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 @@ -1,16 +1,35 @@ package com.casic.missiles.modular.system.dao; -import com.casic.missiles.modular.system.model.Device; -import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.mapper.BaseMapper; + import com.baomidou.mybatisplus.plugins.Page; + import com.casic.missiles.modular.system.dto.DeviceDto; + import com.casic.missiles.modular.system.model.Device; + import org.apache.ibatis.annotations.Param; + + import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface DeviceMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + List reportExport(@Param("projectName") String projectName, + @Param("devTypeId") Long devTypeId, + @Param("devcode") String devcode, + @Param("pm") String pm); + + String getProjectBydevcode(@Param("devcode") String devcode); + + String getDevTypeBydevcode(@Param("devcode") String devcode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java index e053378..99e5402 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ * @return */ List selectDeviceTypeList(); + + ListgetUser(@Param("tips") String[] tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java new file mode 100644 index 0000000..c7cad17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductRepairRecordsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +public interface ProductRepairRecordsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java index 9d87b6a..96d1649 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -1,16 +1,34 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.TaskStatusDto; import com.casic.missiles.modular.system.model.Task; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author stylefeng123 * @since 2020-03-27 */ public interface TaskMapper extends BaseMapper { + List selectPageList(@Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List reportExport(@Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3, + @Param("keyword4") String keyword4); + + List getTaskStatusList(); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 1017207..7c11b75 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -11,13 +11,14 @@ + - contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, external_check_apply AS externalCheckApply,principal, id,deptid + SELECT + pd.`id`, + pd.`devcode` , + pp.`project_simple_name` AS projectSimpleName, + pd.`imei`, + pd.`iccid`, + pt.`cardType`, + pt.`operator`, + pdt.`product_name` AS devTypeName , + pd.`is_send` AS isSend, + pd.description as descn + FROM product_device pd + LEFT JOIN product_batch pb + ON pd.batch_id = pb.id + LEFT JOIN product_task pt + ON pb.task_id = pt.id + LEFT JOIN product_project pp + ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + WHERE 1=1 + + + and pp.`project_name` like '%${projectName}%' + + + and pd.`devtype_id` = #{devTypeId} + + + and pd.`devcode` like '%${devcode}%' + + + + and pp.`project_manager` = #{pm} + + ORDER BY pd.`devcode` asc + + + + + + + +
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml index ad9ff45..3ad44f7 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -50,4 +50,17 @@ WHERE t.status=1 GROUP BY t.product_name + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml new file mode 100644 index 0000000..996a453 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductRepairRecordsMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + id, device_id AS deviceId, devcode, devtype_id AS devtypeId, device_problem_location AS deviceProblemLocation, device_problem AS deviceProblem, repairmen, returntime, createtime, finishtime, analysis, zero_measures AS zeroMeasures + + + 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 23c1627..3efe420 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 @@ -19,4 +19,102 @@ id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + + + + 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 new file mode 100644 index 0000000..43328de --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -0,0 +1,148 @@ +package com.casic.missiles.modular.system.dto; + +public class DeviceDto { + private Long id; + private Long batchId; + private String devcode; + private Long devtypeId; + private String isSend; + private String longitude; + private String latitude; + private String installHeight; + private String iccid; + private String imei; + private String description; + private String devTypeName; + private String projectSimpleName; + private String cardType; + private String operator; + private String descn ; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getImei() { + return imei; + } + + public void setImei(String imei) { + this.imei = imei; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java new file mode 100644 index 0000000..de45edd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/TaskStatusDto.java @@ -0,0 +1,22 @@ +package com.casic.missiles.modular.system.dto; + +public class TaskStatusDto { + private Long taskId; + private String isSend; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java new file mode 100644 index 0000000..9d9f49a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.dto; + +public class UserDto +{ + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 8718d91..6facc6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -34,8 +34,9 @@ @TableField("install_height") private String installHeight; private String iccid; - private Long imei; + private String imei; private Date createtime; + private String description; public Long getId() { @@ -110,11 +111,11 @@ this.iccid = iccid; } - public Long getImei() { + public String getImei() { return imei; } - public void setImei(Long imei) { + public void setImei(String imei) { this.imei = imei; } @@ -126,6 +127,14 @@ this.createtime = createtime; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java index ae6b585..1b06d54 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; 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 new file mode 100644 index 0000000..eb0f678 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -0,0 +1,291 @@ +package com.casic.missiles.modular.system.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-06-16 + */ +@TableName("product_repair_records") +public class ProductRepairRecords extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 设备id + */ + @TableField("device_id") + private Long deviceId; + /** + * 设备编号 + */ + private String devcode; + /** + * 设备类型id + */ + @TableField("devtype_id") + private Long devtypeId; + /** + * 故障定位 + */ + @TableField("device_problem_location") + private String deviceProblemLocation; + /** + * 故障现象 + */ + @TableField("device_problem") + private String deviceProblem; + /** + * 维修员 + */ + @TableField("repairmen_id") + private Long repairmenId; + /** + * 检查员 + */ + @TableField("checkman_id") + private Long checkmanId; + /** + * 返修日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date returntime; + /** + * 创建时间 + */ + private Date createtime; + /** + * 完成日期 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date finishtime; + /** + * 原因分析 + */ + private String analysis; + /** + * 归零措施 + */ + @TableField("zero_measures") + private String zeroMeasures; + + private String ischange; + + private Long taskid; + + @TableField(exist = false) + private String returntimeFmt; + + @TableField(exist = false) + private String finishtimeFmt; + + @TableField(exist = false) + private String devTypeName; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String checkName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDeviceProblemLocation() { + return deviceProblemLocation; + } + + public void setDeviceProblemLocation(String deviceProblemLocation) { + this.deviceProblemLocation = deviceProblemLocation; + } + + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getIschange() { + return ischange; + } + + public void setIschange(String ischange) { + this.ischange = ischange; + } + + public Long getTaskid() { + return taskid; + } + + public void setTaskid(Long taskid) { + this.taskid = taskid; + } + + public String getDeviceProblem() { + return deviceProblem; + } + + public void setDeviceProblem(String deviceProblem) { + this.deviceProblem = deviceProblem; + } + + public Long getRepairmenId() { + return repairmenId; + } + + public void setRepairmenId(Long repairmenId) { + this.repairmenId = repairmenId; + } + + public Long getCheckmanId() { + return checkmanId; + } + + public void setCheckmanId(Long checkmanId) { + this.checkmanId = checkmanId; + } + + public Date getReturntime() { + return returntime; + } + + public void setReturntime(Date returntime) { + this.returntime = returntime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getFinishtime() { + return finishtime; + } + + public void setFinishtime(Date finishtime) { + this.finishtime = finishtime; + } + + public String getAnalysis() { + return analysis; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getZeroMeasures() { + return zeroMeasures; + } + + public void setZeroMeasures(String zeroMeasures) { + this.zeroMeasures = zeroMeasures; + } + + + public String getReturntimeFmt() { + return returntimeFmt; + } + + public void setReturntimeFmt(String returntimeFmt) { + this.returntimeFmt = returntimeFmt; + } + + public String getFinishtimeFmt() { + return finishtimeFmt; + } + + public void setFinishtimeFmt(String finishtimeFmt) { + this.finishtimeFmt = finishtimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductRepairRecords{" + + "id=" + id + + ", deviceId=" + deviceId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", deviceProblemLocation=" + deviceProblemLocation + + ", deviceProblem=" + deviceProblem + + ", returntime=" + returntime + + ", createtime=" + createtime + + ", finishtime=" + finishtime + + ", analysis=" + analysis + + ", zeroMeasures=" + zeroMeasures + + "}"; + } +} 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 987efa7..4b610c4 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 @@ -29,13 +29,25 @@ @TableField("devmode_id") private String devmodeId; private Long devcount; + private Long remaincount; @TableField("delivery_time") private Date deliveryTime; private String demand; + private String isstored; + private String isSend; + private String cardType; + private String operator; private Date createtime; @TableField(exist = false) private String deliveryTimeFmt; - + @TableField(exist = false) + private String devTypeName ; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSimpleName; + @TableField(exist = false) + private String contractNumber; @TableField(exist = false) private Long taskId; @@ -120,6 +132,79 @@ this.taskId = taskId; } + public String getDevTypeName() { + return devTypeName; + } + + public void setDevTypeName(String devTypeName) { + this.devTypeName = devTypeName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java index 71490df..e95ea69 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import org.springframework.transaction.annotation.Transactional; @@ -59,4 +60,6 @@ * @return */ ProductDeviceType selectDeviceTypeByModel(String deviceModel); + + List getUser(String tips); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java index 455f60a..acb5403 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -27,5 +27,5 @@ * 导入 * @param results */ - void importDeviceType(List results); + String importDeviceType(List results); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java index ac6d447..1718055 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; @@ -90,4 +91,9 @@ entityWrapper.eq("product_model",deviceModel); return this.selectOne(entityWrapper); } + + @Override + public List getUser(String tips) { + return this.baseMapper.getUser(ToolUtil.isNotEmpty(tips)?tips.split(","):null); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java index efe4410..d3e2691 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -39,12 +40,27 @@ @Transactional(rollbackFor=Exception.class) @Override - public void importDeviceType(List results) { + public String importDeviceType(List results) { + String msg=""; + List stringList = new ArrayList<>(); + List idList = new ArrayList<>(); for (ProductFactoryInformation productFactoryInformation : results) { - EntityWrapper wrapper = new EntityWrapper<>(); - wrapper.eq("name", productFactoryInformation.getName()); - delete(wrapper); + stringList.add(productFactoryInformation.getName()); + } + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.in("name", stringList); + List productFactoryInformations= + this.selectList(wrapper); + for(ProductFactoryInformation productFactoryInformation:productFactoryInformations){ + msg+=productFactoryInformation.getName()+","; + idList.add(productFactoryInformation.getId()); + } + if(idList.size()>0){ + this.deleteBatchIds(idList); + } + for (ProductFactoryInformation productFactoryInformation : results) { this.baseMapper.insert(productFactoryInformation); } + return ToolUtil.isNotEmpty(msg)?msg.substring(0,msg.length()-1)+"重复":msg; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java index d5ffadb..5935be5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -49,7 +49,7 @@ for (Batch batch : batches) { for (int i = 1; i <= batch.getBatchCount(); i++) { Device device = new Device(); - String wellCode4 = String.format("%04x", i); + String wellCode4 = String.format("%04d", i); if (wellExcludeCode.equals(wellCode4)) { continue; } @@ -57,7 +57,7 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + + String.format("%02d", batch.getBatchNumber()) + wellCode4; device.setDevcode(devCode); device.setBatchId(batch.getId()); @@ -75,8 +75,8 @@ String devCode = deviceType.getProductType() + factoryCode + getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); device.setDevcode(devCode); device.setBatchId(batch.getId()); device.setDevtypeId(batch.getDevtypeId()); @@ -115,41 +115,24 @@ } } } - //其他设备类型分lora和非lora版本 + //其他设备类型分lora和非lora版本 都生成10进制设备编号 else { - if (loraDevice.equals(deviceType.getCommunicationVersion())) { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02x", batch.getBatchNumber()) + - String.format("%04x", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } - } - } else { - for (Batch batch : batches) { - for (int i = 1; i <= batch.getBatchCount(); i++) { - Device device = new Device(); - //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 - String devCode = deviceType.getProductType() + - factoryCode + - getYearFmt() + - String.format("%02d", batch.getBatchNumber()) + - String.format("%04d", i); - device.setDevtypeId(batch.getDevtypeId()); - device.setBatchId(batch.getId()); - device.setDevcode(devCode); - deviceList.add(device); - } + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); } } + } } catch (Exception e) { e.printStackTrace(); @@ -167,12 +150,7 @@ batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? 0 : devTypeCountHashMap.get(deviceType.getProductName()); if (0 == batchCountMax) { - if (deviceType.getProductModel().indexOf(loraDevice) - == deviceType.getProductModel().length() - 1) { - batchCountMax = 255; - } else { - batchCountMax = 9999; - } + batchCountMax = 9999; } for (Batch batch : batches) { if (batch.getBatchCount() > batchCountMax) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java new file mode 100644 index 0000000..e103779 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil_bak.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil_bak { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} 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 33c3535..7497dc7 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 @@ -40,4 +40,20 @@ fis.close(); } } + + public static String getOriginalFilename(String fileName ){ + //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf("/"); + // Check for Windows-style path + int winSep = fileName.lastIndexOf("\\"); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + + return fileName; + } } 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 new file mode 100644 index 0000000..838dcf7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,129 @@ +package com.casic.missiles.modular.task.controller; + +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.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody( required=false) List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + + /** + * + * 查找批次列表 + */ + @RequestMapping(value = "/getBatchList") + @ResponseBody + public Object getBatchList(Long devtypeId,Long taskId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.eq("task_id", taskId); + entityWrapper.orderBy("id", true); + List batchList =batchService.selectList(entityWrapper); + return ResponseData.success(batchList); + } + +} 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 new file mode 100644 index 0000000..e3e3348 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,217 @@ +package com.casic.missiles.modular.task.controller; + +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.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProjectService; +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.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.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + @Autowired + private IProjectService projectService; + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3, String keyword4) { + + Page page = new PageFactory().defaultPage(); + List taskList = taskService.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + page.setRecords(taskList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + task.setRemaincount(task.getDevcount()); + taskService.updateById(task); + return ResponseData.success(); + } + + /** + * 导出任务列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + String keyword4 = httpServletRequest.getParameter("keyword4"); + List list = taskService.reportExport(keyword1, keyword2, keyword3, keyword4); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "taskList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "taskList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 批量导入任务列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("项目id", "projectId"); + mapper.put("设备类型id", "devtypeId"); + mapper.put("设备型号", "devmodeId"); + mapper.put("卡类型", "cardType"); + mapper.put("运营商", "operator"); + mapper.put("设备数量", "devcount"); + mapper.put("交付时间", "deliveryTimeFmt"); + mapper.put("设备要求", "demand"); + mapper.put("备货任务", "isstored"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Task.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Task task = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(task.getProjectId(), task.getDevmodeId(), task.getDevcount())) { + results.add(task); + } + } + } else { + row.shutdown(); + } + }); + + taskService.importTask(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入任务列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 任务下拉接口 + */ + @RequestMapping(value = "/getTask") + @ResponseBody + public Object getTask() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("isstored", "1"); + List taskList = taskService.selectList(entityWrapper); + for (Task task : taskList) { + Project project = projectService.selectById(task.getProjectId()); + if (project != null) { + task.setProjectName(project.getProjectName()); + } + } + return ResponseData.success(200, "", taskList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} 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 new file mode 100644 index 0000000..43b8fed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + List selectPageList(Page page, + String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1, + String keyword2, + String keyword3, + String keyword4); + + /** + * 批量导入任务列表 + * @param results + */ + void importTask(List results); + + /** + * 更新任务状态 + * @return + */ + void getUpdateList(); +} 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 new file mode 100644 index 0000000..f6154ad --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(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()); + 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()); +// } +// //删除批次 +// 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); +// } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} 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 new file mode 100644 index 0000000..526f3c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,98 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +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.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +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; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + private static String[] sendArr = {"生产中", "已发货", "待交付"}; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.selectPageList(page, keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setIsSend("1".equals(task.getIsSend()) ? sendArr[1] : + ("2".equals(task.getIsSend()) ? sendArr[2] : sendArr[0])); + } + return taskList; + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3, String keyword4) { + + List taskList = this.baseMapper.reportExport(keyword1, keyword2, keyword3, keyword4); + for (Task task : taskList) { + task.setDeliveryTimeFmt(task.getDeliveryTimeFmt() != null ? task.getDeliveryTimeFmt().substring(0, 10) : ""); + } + return taskList; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void importTask(List results) { + for (Task task : results) { + task.setDeliveryTime(ToolUtil.isNotEmpty(task.getDeliveryTimeFmt()) ? + DateUtil.parse(task.getDeliveryTimeFmt(), "yyyy-MM-dd") : null); + } + this.insertBatch(results); + } + + @Override + public void getUpdateList() { + List taskStatusDtoList = this.baseMapper.getTaskStatusList(); + + List idList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (!idList.contains(taskStatusDto.getTaskId())) { + idList.add(taskStatusDto.getTaskId()); + } + } + for (Long id : idList) { + List statusList = new ArrayList<>(); + for (TaskStatusDto taskStatusDto : taskStatusDtoList) { + if (id .equals( taskStatusDto.getTaskId())) { + statusList.add(taskStatusDto.getIsSend()); + } + } + if (statusList.contains("0")) { + } else if (statusList.contains("2")) { + Task task = this.selectById(id); + if (task != null && "0".equals(task.getIsSend())) { + task.setIsSend("2"); + this.updateById(task); + } + } else if (statusList.contains("1")) { + Task task = this.selectById(id); + if (task != null) { + task.setIsSend("1"); + this.updateById(task); + } + } + + } +// return this.selectList(entityWrapper); + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1c54b04..eef713e 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,15 +3,15 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! 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 + 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\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx index 71e3f4a..871fa15 100644 --- a/casic-web/src/main/resources/excel/contractImp.xlsx +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx new file mode 100644 index 0000000..2986ec1 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp _bak.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx index 516a5a6..308b35f 100644 --- a/casic-web/src/main/resources/excel/devTypeImp.xlsx +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceImp.xlsx b/casic-web/src/main/resources/excel/deviceImp.xlsx new file mode 100644 index 0000000..0c6f31f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceList.xlsx b/casic-web/src/main/resources/excel/deviceList.xlsx new file mode 100644 index 0000000..ebc172f --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceTypeList.xlsx b/casic-web/src/main/resources/excel/deviceTypeList.xlsx index f4121d8..bc93325 100644 --- a/casic-web/src/main/resources/excel/deviceTypeList.xlsx +++ b/casic-web/src/main/resources/excel/deviceTypeList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/factoryImp.xlsx b/casic-web/src/main/resources/excel/factoryImp.xlsx index 1054f71..bf2dedf 100644 --- a/casic-web/src/main/resources/excel/factoryImp.xlsx +++ b/casic-web/src/main/resources/excel/factoryImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/repairsList.xlsx b/casic-web/src/main/resources/excel/repairsList.xlsx new file mode 100644 index 0000000..7c6edf1 --- /dev/null +++ b/casic-web/src/main/resources/excel/repairsList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/taskImp.xlsx b/casic-web/src/main/resources/excel/taskImp.xlsx new file mode 100644 index 0000000..6fec8e3 --- /dev/null +++ b/casic-web/src/main/resources/excel/taskImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/taskList.xlsx b/casic-web/src/main/resources/excel/taskList.xlsx new file mode 100644 index 0000000..73f22df --- /dev/null +++ b/casic-web/src/main/resources/excel/taskList.xlsx Binary files differ