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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 89face9..d6b729c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.modular.annotation.DictCodeField; +import com.casic.missiles.modular.system.enums.DictEnum; +import lombok.Data; + import java.io.Serializable; import java.util.Date; @@ -16,6 +20,7 @@ * @author stylefeng123 * @since 2020-03-18 */ +@Data @TableName("product_project") public class Project extends Model { @@ -29,66 +34,17 @@ @TableField("project_manager") private String projectManager; private String descn; + @TableField("project_start_time") + private Date projectStartTime; + @TableField("project_end_time") + private Date projectEndTime; private String devTpeIds; + @TableField(exist = false) + private String devTpeNames; @TableField("createtime") private Date createtime; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - 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 getProjectManager() { - return projectManager; - } - - public void setProjectManager(String projectManager) { - this.projectManager = projectManager; - } - - public String getDescn() { - return descn; - } - - public void setDescn(String descn) { - this.descn = descn; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public String getDevTpeIds() { - return devTpeIds; - } - - public void setDevTpeIds(String devTpeIds) { - this.devTpeIds = devTpeIds; - } + @TableField(exist = false) + private String projectStatus; @Override protected Serializable pkVal() { 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 89face9..d6b729c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.modular.annotation.DictCodeField; +import com.casic.missiles.modular.system.enums.DictEnum; +import lombok.Data; + import java.io.Serializable; import java.util.Date; @@ -16,6 +20,7 @@ * @author stylefeng123 * @since 2020-03-18 */ +@Data @TableName("product_project") public class Project extends Model { @@ -29,66 +34,17 @@ @TableField("project_manager") private String projectManager; private String descn; + @TableField("project_start_time") + private Date projectStartTime; + @TableField("project_end_time") + private Date projectEndTime; private String devTpeIds; + @TableField(exist = false) + private String devTpeNames; @TableField("createtime") private Date createtime; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - 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 getProjectManager() { - return projectManager; - } - - public void setProjectManager(String projectManager) { - this.projectManager = projectManager; - } - - public String getDescn() { - return descn; - } - - public void setDescn(String descn) { - this.descn = descn; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public String getDevTpeIds() { - return devTpeIds; - } - - public void setDevTpeIds(String devTpeIds) { - this.devTpeIds = devTpeIds; - } + @TableField(exist = false) + private String projectStatus; @Override protected Serializable pkVal() { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java new file mode 100644 index 0000000..bd9bcd4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.service; + + +public interface AbstractDictService { + + String getDictNameByCode(String var1, String var2); + +} 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 89face9..d6b729c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.modular.annotation.DictCodeField; +import com.casic.missiles.modular.system.enums.DictEnum; +import lombok.Data; + import java.io.Serializable; import java.util.Date; @@ -16,6 +20,7 @@ * @author stylefeng123 * @since 2020-03-18 */ +@Data @TableName("product_project") public class Project extends Model { @@ -29,66 +34,17 @@ @TableField("project_manager") private String projectManager; private String descn; + @TableField("project_start_time") + private Date projectStartTime; + @TableField("project_end_time") + private Date projectEndTime; private String devTpeIds; + @TableField(exist = false) + private String devTpeNames; @TableField("createtime") private Date createtime; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - 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 getProjectManager() { - return projectManager; - } - - public void setProjectManager(String projectManager) { - this.projectManager = projectManager; - } - - public String getDescn() { - return descn; - } - - public void setDescn(String descn) { - this.descn = descn; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public String getDevTpeIds() { - return devTpeIds; - } - - public void setDevTpeIds(String devTpeIds) { - this.devTpeIds = devTpeIds; - } + @TableField(exist = false) + private String projectStatus; @Override protected Serializable pkVal() { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java new file mode 100644 index 0000000..bd9bcd4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.service; + + +public interface AbstractDictService { + + String getDictNameByCode(String var1, String var2); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java new file mode 100644 index 0000000..2adceb6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java @@ -0,0 +1,5 @@ +package com.casic.missiles.modular.system.service; + +public interface ICasicDictService extends AbstractDictService { + +} 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 89face9..d6b729c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.modular.annotation.DictCodeField; +import com.casic.missiles.modular.system.enums.DictEnum; +import lombok.Data; + import java.io.Serializable; import java.util.Date; @@ -16,6 +20,7 @@ * @author stylefeng123 * @since 2020-03-18 */ +@Data @TableName("product_project") public class Project extends Model { @@ -29,66 +34,17 @@ @TableField("project_manager") private String projectManager; private String descn; + @TableField("project_start_time") + private Date projectStartTime; + @TableField("project_end_time") + private Date projectEndTime; private String devTpeIds; + @TableField(exist = false) + private String devTpeNames; @TableField("createtime") private Date createtime; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - 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 getProjectManager() { - return projectManager; - } - - public void setProjectManager(String projectManager) { - this.projectManager = projectManager; - } - - public String getDescn() { - return descn; - } - - public void setDescn(String descn) { - this.descn = descn; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public String getDevTpeIds() { - return devTpeIds; - } - - public void setDevTpeIds(String devTpeIds) { - this.devTpeIds = devTpeIds; - } + @TableField(exist = false) + private String projectStatus; @Override protected Serializable pkVal() { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java new file mode 100644 index 0000000..bd9bcd4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.service; + + +public interface AbstractDictService { + + String getDictNameByCode(String var1, String var2); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java new file mode 100644 index 0000000..2adceb6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java @@ -0,0 +1,5 @@ +package com.casic.missiles.modular.system.service; + +public interface ICasicDictService extends AbstractDictService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java index 3c27bd1..8104f6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.modular.system.model.Project; import com.baomidou.mybatisplus.service.IService; @@ -13,4 +14,5 @@ */ public interface IProjectService extends IService { + Page listPage(Page page, String projectName, String projectStatus) throws Exception; } 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 89face9..d6b729c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.modular.annotation.DictCodeField; +import com.casic.missiles.modular.system.enums.DictEnum; +import lombok.Data; + import java.io.Serializable; import java.util.Date; @@ -16,6 +20,7 @@ * @author stylefeng123 * @since 2020-03-18 */ +@Data @TableName("product_project") public class Project extends Model { @@ -29,66 +34,17 @@ @TableField("project_manager") private String projectManager; private String descn; + @TableField("project_start_time") + private Date projectStartTime; + @TableField("project_end_time") + private Date projectEndTime; private String devTpeIds; + @TableField(exist = false) + private String devTpeNames; @TableField("createtime") private Date createtime; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - 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 getProjectManager() { - return projectManager; - } - - public void setProjectManager(String projectManager) { - this.projectManager = projectManager; - } - - public String getDescn() { - return descn; - } - - public void setDescn(String descn) { - this.descn = descn; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public String getDevTpeIds() { - return devTpeIds; - } - - public void setDevTpeIds(String devTpeIds) { - this.devTpeIds = devTpeIds; - } + @TableField(exist = false) + private String projectStatus; @Override protected Serializable pkVal() { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java new file mode 100644 index 0000000..bd9bcd4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.service; + + +public interface AbstractDictService { + + String getDictNameByCode(String var1, String var2); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java new file mode 100644 index 0000000..2adceb6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java @@ -0,0 +1,5 @@ +package com.casic.missiles.modular.system.service; + +public interface ICasicDictService extends AbstractDictService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java index 3c27bd1..8104f6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.modular.system.model.Project; import com.baomidou.mybatisplus.service.IService; @@ -13,4 +14,5 @@ */ public interface IProjectService extends IService { + Page listPage(Page page, String projectName, String projectStatus) throws Exception; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java new file mode 100644 index 0000000..69adc96 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dao.DictMapper; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.service.ICasicDictService; +import lombok.AllArgsConstructor; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.Iterator; +import java.util.List; + +/** + * @author cz + * @date 2023-5-22 + */ +@Service +@AllArgsConstructor +public class DefaultCasicDictServiceImpl implements ICasicDictService { + + private final DictMapper dictMapper; + + @Override + @Cacheable( + value = {"CONSTANT_DICT"}, + key = "'dict_code_'+#code+'-'+#val" + ) + public String getDictNameByCode(String code, String val) { + List dictList = this.findInDictByCode(code); + if (!CollectionUtils.isEmpty(dictList)) { + Iterator var4 = dictList.iterator(); + while (var4.hasNext()) { + Dict item = (Dict) var4.next(); + if (item.getCode() != null && item.getCode().equals(val)) { + return item.getName(); + } + } + } + return ""; + } + + private List findInDictByCode(String code) { + Dict dict=new Dict(); + dict.setCode(code); + dict = this.dictMapper.selectOne(dict); + if (dict == null) { + return null; + } else { + EntityWrapper wrapper = new EntityWrapper<>(); + List dicts = this.dictMapper.selectList(wrapper.eq("pid", dict.getId())); + return dicts != null && dicts.size() != 0 ? dicts : null; + } + } +} 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 89face9..d6b729c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.modular.annotation.DictCodeField; +import com.casic.missiles.modular.system.enums.DictEnum; +import lombok.Data; + import java.io.Serializable; import java.util.Date; @@ -16,6 +20,7 @@ * @author stylefeng123 * @since 2020-03-18 */ +@Data @TableName("product_project") public class Project extends Model { @@ -29,66 +34,17 @@ @TableField("project_manager") private String projectManager; private String descn; + @TableField("project_start_time") + private Date projectStartTime; + @TableField("project_end_time") + private Date projectEndTime; private String devTpeIds; + @TableField(exist = false) + private String devTpeNames; @TableField("createtime") private Date createtime; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - 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 getProjectManager() { - return projectManager; - } - - public void setProjectManager(String projectManager) { - this.projectManager = projectManager; - } - - public String getDescn() { - return descn; - } - - public void setDescn(String descn) { - this.descn = descn; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public String getDevTpeIds() { - return devTpeIds; - } - - public void setDevTpeIds(String devTpeIds) { - this.devTpeIds = devTpeIds; - } + @TableField(exist = false) + private String projectStatus; @Override protected Serializable pkVal() { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java new file mode 100644 index 0000000..bd9bcd4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.service; + + +public interface AbstractDictService { + + String getDictNameByCode(String var1, String var2); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java new file mode 100644 index 0000000..2adceb6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java @@ -0,0 +1,5 @@ +package com.casic.missiles.modular.system.service; + +public interface ICasicDictService extends AbstractDictService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java index 3c27bd1..8104f6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.modular.system.model.Project; import com.baomidou.mybatisplus.service.IService; @@ -13,4 +14,5 @@ */ public interface IProjectService extends IService { + Page listPage(Page page, String projectName, String projectStatus) throws Exception; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java new file mode 100644 index 0000000..69adc96 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dao.DictMapper; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.service.ICasicDictService; +import lombok.AllArgsConstructor; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.Iterator; +import java.util.List; + +/** + * @author cz + * @date 2023-5-22 + */ +@Service +@AllArgsConstructor +public class DefaultCasicDictServiceImpl implements ICasicDictService { + + private final DictMapper dictMapper; + + @Override + @Cacheable( + value = {"CONSTANT_DICT"}, + key = "'dict_code_'+#code+'-'+#val" + ) + public String getDictNameByCode(String code, String val) { + List dictList = this.findInDictByCode(code); + if (!CollectionUtils.isEmpty(dictList)) { + Iterator var4 = dictList.iterator(); + while (var4.hasNext()) { + Dict item = (Dict) var4.next(); + if (item.getCode() != null && item.getCode().equals(val)) { + return item.getName(); + } + } + } + return ""; + } + + private List findInDictByCode(String code) { + Dict dict=new Dict(); + dict.setCode(code); + dict = this.dictMapper.selectOne(dict); + if (dict == null) { + return null; + } else { + EntityWrapper wrapper = new EntityWrapper<>(); + List dicts = this.dictMapper.selectList(wrapper.eq("pid", dict.getId())); + return dicts != null && dicts.size() != 0 ? dicts : null; + } + } +} 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 1718055..9d9b5fc 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 @@ -13,6 +13,7 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -79,6 +80,7 @@ } + @Override public List selectDeviceTypeList() { return this.baseMapper.selectDeviceTypeList(); 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 89face9..d6b729c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.modular.annotation.DictCodeField; +import com.casic.missiles.modular.system.enums.DictEnum; +import lombok.Data; + import java.io.Serializable; import java.util.Date; @@ -16,6 +20,7 @@ * @author stylefeng123 * @since 2020-03-18 */ +@Data @TableName("product_project") public class Project extends Model { @@ -29,66 +34,17 @@ @TableField("project_manager") private String projectManager; private String descn; + @TableField("project_start_time") + private Date projectStartTime; + @TableField("project_end_time") + private Date projectEndTime; private String devTpeIds; + @TableField(exist = false) + private String devTpeNames; @TableField("createtime") private Date createtime; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - 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 getProjectManager() { - return projectManager; - } - - public void setProjectManager(String projectManager) { - this.projectManager = projectManager; - } - - public String getDescn() { - return descn; - } - - public void setDescn(String descn) { - this.descn = descn; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public String getDevTpeIds() { - return devTpeIds; - } - - public void setDevTpeIds(String devTpeIds) { - this.devTpeIds = devTpeIds; - } + @TableField(exist = false) + private String projectStatus; @Override protected Serializable pkVal() { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java new file mode 100644 index 0000000..bd9bcd4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.service; + + +public interface AbstractDictService { + + String getDictNameByCode(String var1, String var2); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java new file mode 100644 index 0000000..2adceb6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java @@ -0,0 +1,5 @@ +package com.casic.missiles.modular.system.service; + +public interface ICasicDictService extends AbstractDictService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java index 3c27bd1..8104f6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.modular.system.model.Project; import com.baomidou.mybatisplus.service.IService; @@ -13,4 +14,5 @@ */ public interface IProjectService extends IService { + Page listPage(Page page, String projectName, String projectStatus) throws Exception; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java new file mode 100644 index 0000000..69adc96 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dao.DictMapper; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.service.ICasicDictService; +import lombok.AllArgsConstructor; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.Iterator; +import java.util.List; + +/** + * @author cz + * @date 2023-5-22 + */ +@Service +@AllArgsConstructor +public class DefaultCasicDictServiceImpl implements ICasicDictService { + + private final DictMapper dictMapper; + + @Override + @Cacheable( + value = {"CONSTANT_DICT"}, + key = "'dict_code_'+#code+'-'+#val" + ) + public String getDictNameByCode(String code, String val) { + List dictList = this.findInDictByCode(code); + if (!CollectionUtils.isEmpty(dictList)) { + Iterator var4 = dictList.iterator(); + while (var4.hasNext()) { + Dict item = (Dict) var4.next(); + if (item.getCode() != null && item.getCode().equals(val)) { + return item.getName(); + } + } + } + return ""; + } + + private List findInDictByCode(String code) { + Dict dict=new Dict(); + dict.setCode(code); + dict = this.dictMapper.selectOne(dict); + if (dict == null) { + return null; + } else { + EntityWrapper wrapper = new EntityWrapper<>(); + List dicts = this.dictMapper.selectList(wrapper.eq("pid", dict.getId())); + return dicts != null && dicts.size() != 0 ? dicts : null; + } + } +} 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 1718055..9d9b5fc 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 @@ -13,6 +13,7 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -79,6 +80,7 @@ } + @Override public List selectDeviceTypeList() { return this.baseMapper.selectDeviceTypeList(); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java index 34655b0..d0bcaf4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -1,20 +1,98 @@ package com.casic.missiles.modular.system.service.impl; +import com.alibaba.druid.util.StringUtils; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.util.DictCodeUtils; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; /** *

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

* * @author stylefeng123 * @since 2020-03-18 */ @Service -public class ProjectServiceImpl extends ServiceImpl implements IProjectService { +@AllArgsConstructor +public class ProjectServiceImpl extends ServiceImpl implements IProjectService, ProjectStatusEnum { + private final IProductDeviceTypeService deviceTypeService; + + @Override + public Page listPage(Page page, String projectName, String projectStatus) throws Exception { + EntityWrapper query = initProjectParm(projectName, projectStatus); + page = this.selectPage(page, query); + for (Project project : page.getRecords()) { + //开始时间为空判断为已经执行 + if (ObjectUtils.isEmpty(project.getProjectStartTime())) { + project.setProjectStatus(HAS_EXCUTE); + //小于开始时间为空判断为未执行 + }else if(project.getProjectStartTime().compareTo(new Date())< 0){ + project.setProjectStatus(NOT_EXCUTE); + //小于结束时间为空判断为正在执行 + }else if(!ObjectUtils.isEmpty(project.getProjectEndTime()) && + project.getProjectEndTime().compareTo(new Date())<0){ + project.setProjectStatus(EXCUTEING); + }else { + project.setProjectStatus(HAS_EXCUTE); + } + project.setDevTpeNames(deviceTypeTransName(project.getDevTpeIds())); + DictCodeUtils.convertDictCodeToName(project); + } + return page; + } + + private String deviceTypeTransName(String deviceTyps) { + if (StringUtils.isEmpty(deviceTyps)) { + return null; + } + List deviceTypeDtos = deviceTypeService.selectDeviceTypeList(); + Map deviceTypeMap = deviceTypeDtos.stream().collect( + Collectors.toMap(DeviceTypeDto::getId, DeviceTypeDto::getProductName) + ); + String[] deviceTypList = deviceTyps.split(","); + String deviceTypeNames = ""; + for (String deviceType : deviceTypList) { + if(!StringUtils.isEmpty(deviceType)){ + deviceTypeNames += deviceTypeMap.get(Long.valueOf(deviceType)) + ","; + } + } + if (!StringUtils.isEmpty(deviceTypeNames)) { + deviceTypeNames = deviceTypeNames.substring(0, deviceTypeNames.length() - 1); + } + return deviceTypeNames; + } + + private EntityWrapper initProjectParm(String projectName, String projectStatus) { + EntityWrapper query = new EntityWrapper<>(); + query.like("project_name", projectName); + if (!StringUtils.isEmpty(projectStatus) && !"0".equals(projectStatus)) { + if ("1".equals(projectStatus)) { + query.lt("project_start_time", new Date()); + } else if ("2".equals(projectStatus)) { + query.ge("project_start_time", new Date()); + query.lt("project_end_time", new Date()); + } else { + query.ge("project_end_time", new Date()); + } + } + return query; + } } 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 89face9..d6b729c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.modular.annotation.DictCodeField; +import com.casic.missiles.modular.system.enums.DictEnum; +import lombok.Data; + import java.io.Serializable; import java.util.Date; @@ -16,6 +20,7 @@ * @author stylefeng123 * @since 2020-03-18 */ +@Data @TableName("product_project") public class Project extends Model { @@ -29,66 +34,17 @@ @TableField("project_manager") private String projectManager; private String descn; + @TableField("project_start_time") + private Date projectStartTime; + @TableField("project_end_time") + private Date projectEndTime; private String devTpeIds; + @TableField(exist = false) + private String devTpeNames; @TableField("createtime") private Date createtime; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - 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 getProjectManager() { - return projectManager; - } - - public void setProjectManager(String projectManager) { - this.projectManager = projectManager; - } - - public String getDescn() { - return descn; - } - - public void setDescn(String descn) { - this.descn = descn; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public String getDevTpeIds() { - return devTpeIds; - } - - public void setDevTpeIds(String devTpeIds) { - this.devTpeIds = devTpeIds; - } + @TableField(exist = false) + private String projectStatus; @Override protected Serializable pkVal() { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java new file mode 100644 index 0000000..bd9bcd4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.service; + + +public interface AbstractDictService { + + String getDictNameByCode(String var1, String var2); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java new file mode 100644 index 0000000..2adceb6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java @@ -0,0 +1,5 @@ +package com.casic.missiles.modular.system.service; + +public interface ICasicDictService extends AbstractDictService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java index 3c27bd1..8104f6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.modular.system.model.Project; import com.baomidou.mybatisplus.service.IService; @@ -13,4 +14,5 @@ */ public interface IProjectService extends IService { + Page listPage(Page page, String projectName, String projectStatus) throws Exception; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java new file mode 100644 index 0000000..69adc96 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dao.DictMapper; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.service.ICasicDictService; +import lombok.AllArgsConstructor; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.Iterator; +import java.util.List; + +/** + * @author cz + * @date 2023-5-22 + */ +@Service +@AllArgsConstructor +public class DefaultCasicDictServiceImpl implements ICasicDictService { + + private final DictMapper dictMapper; + + @Override + @Cacheable( + value = {"CONSTANT_DICT"}, + key = "'dict_code_'+#code+'-'+#val" + ) + public String getDictNameByCode(String code, String val) { + List dictList = this.findInDictByCode(code); + if (!CollectionUtils.isEmpty(dictList)) { + Iterator var4 = dictList.iterator(); + while (var4.hasNext()) { + Dict item = (Dict) var4.next(); + if (item.getCode() != null && item.getCode().equals(val)) { + return item.getName(); + } + } + } + return ""; + } + + private List findInDictByCode(String code) { + Dict dict=new Dict(); + dict.setCode(code); + dict = this.dictMapper.selectOne(dict); + if (dict == null) { + return null; + } else { + EntityWrapper wrapper = new EntityWrapper<>(); + List dicts = this.dictMapper.selectList(wrapper.eq("pid", dict.getId())); + return dicts != null && dicts.size() != 0 ? dicts : null; + } + } +} 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 1718055..9d9b5fc 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 @@ -13,6 +13,7 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -79,6 +80,7 @@ } + @Override public List selectDeviceTypeList() { return this.baseMapper.selectDeviceTypeList(); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java index 34655b0..d0bcaf4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -1,20 +1,98 @@ package com.casic.missiles.modular.system.service.impl; +import com.alibaba.druid.util.StringUtils; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.util.DictCodeUtils; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; /** *

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

* * @author stylefeng123 * @since 2020-03-18 */ @Service -public class ProjectServiceImpl extends ServiceImpl implements IProjectService { +@AllArgsConstructor +public class ProjectServiceImpl extends ServiceImpl implements IProjectService, ProjectStatusEnum { + private final IProductDeviceTypeService deviceTypeService; + + @Override + public Page listPage(Page page, String projectName, String projectStatus) throws Exception { + EntityWrapper query = initProjectParm(projectName, projectStatus); + page = this.selectPage(page, query); + for (Project project : page.getRecords()) { + //开始时间为空判断为已经执行 + if (ObjectUtils.isEmpty(project.getProjectStartTime())) { + project.setProjectStatus(HAS_EXCUTE); + //小于开始时间为空判断为未执行 + }else if(project.getProjectStartTime().compareTo(new Date())< 0){ + project.setProjectStatus(NOT_EXCUTE); + //小于结束时间为空判断为正在执行 + }else if(!ObjectUtils.isEmpty(project.getProjectEndTime()) && + project.getProjectEndTime().compareTo(new Date())<0){ + project.setProjectStatus(EXCUTEING); + }else { + project.setProjectStatus(HAS_EXCUTE); + } + project.setDevTpeNames(deviceTypeTransName(project.getDevTpeIds())); + DictCodeUtils.convertDictCodeToName(project); + } + return page; + } + + private String deviceTypeTransName(String deviceTyps) { + if (StringUtils.isEmpty(deviceTyps)) { + return null; + } + List deviceTypeDtos = deviceTypeService.selectDeviceTypeList(); + Map deviceTypeMap = deviceTypeDtos.stream().collect( + Collectors.toMap(DeviceTypeDto::getId, DeviceTypeDto::getProductName) + ); + String[] deviceTypList = deviceTyps.split(","); + String deviceTypeNames = ""; + for (String deviceType : deviceTypList) { + if(!StringUtils.isEmpty(deviceType)){ + deviceTypeNames += deviceTypeMap.get(Long.valueOf(deviceType)) + ","; + } + } + if (!StringUtils.isEmpty(deviceTypeNames)) { + deviceTypeNames = deviceTypeNames.substring(0, deviceTypeNames.length() - 1); + } + return deviceTypeNames; + } + + private EntityWrapper initProjectParm(String projectName, String projectStatus) { + EntityWrapper query = new EntityWrapper<>(); + query.like("project_name", projectName); + if (!StringUtils.isEmpty(projectStatus) && !"0".equals(projectStatus)) { + if ("1".equals(projectStatus)) { + query.lt("project_start_time", new Date()); + } else if ("2".equals(projectStatus)) { + query.ge("project_start_time", new Date()); + query.lt("project_end_time", new Date()); + } else { + query.ge("project_end_time", new Date()); + } + } + return query; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java b/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java new file mode 100644 index 0000000..c2e1c17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.util; + +import com.casic.missiles.modular.system.enums.BusinessException; +import com.casic.missiles.modular.system.service.AbstractDictService; +import com.casic.missiles.modular.annotation.DictCodeField; + +import org.apache.commons.lang3.StringUtils; + +import java.lang.reflect.Field; +import java.util.Objects; + +/** + * 字典utils + */ +public class DictCodeUtils { + /** + * 字典code转换成名称 + */ + public static void convertDictCodeToName(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null) { + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) { + continue; + } + String name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + String destFieldName = field.getName() + "Name"; + Field destField = object.getClass().getDeclaredField(destFieldName); + if (destField == null) { + throw new BusinessException(500, "字典名称字段不存在"); + } + if (!destField.isAccessible()) { + destField.setAccessible(true); + } + destField.set(object, name); + } + } + } + + + /** + * 多个字典code(逗号隔开),转换成名称 + */ + public static void convertDictMultiCodeToName(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null) { + + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) { + continue; + } + String name = ""; + //进行字典值得获取 + if (field.get(object).toString().contains(",")) { + String[] filedObjects = field.get(object).toString().split(","); + for (String filedObject : filedObjects) { + name += dictService.getDictNameByCode(dictCodeField.cacheName(), filedObject) + ","; + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } else { + name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } + String destFieldName = field.getName() + "Name"; + Field destField = object.getClass().getDeclaredField(destFieldName); + if (destField == null) { + throw new BusinessException(500, "字典名称字段不存在"); + } + if (!destField.isAccessible()) { + destField.setAccessible(true); + } + destField.set(object, name); + } + } + } + + /** + * 校验字典code是否合法 + * + * @param object + * @return + */ + public static boolean validDictCode(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null && !field.get(object).equals("")) { + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + // 判断字典code是否需要校验 + if (!dictCodeField.needValid()) { + continue; + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + String name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + dictCodeField.message(); + } + } + return true; + } + +} \ No newline at end of file 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 89face9..d6b729c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.modular.annotation.DictCodeField; +import com.casic.missiles.modular.system.enums.DictEnum; +import lombok.Data; + import java.io.Serializable; import java.util.Date; @@ -16,6 +20,7 @@ * @author stylefeng123 * @since 2020-03-18 */ +@Data @TableName("product_project") public class Project extends Model { @@ -29,66 +34,17 @@ @TableField("project_manager") private String projectManager; private String descn; + @TableField("project_start_time") + private Date projectStartTime; + @TableField("project_end_time") + private Date projectEndTime; private String devTpeIds; + @TableField(exist = false) + private String devTpeNames; @TableField("createtime") private Date createtime; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - 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 getProjectManager() { - return projectManager; - } - - public void setProjectManager(String projectManager) { - this.projectManager = projectManager; - } - - public String getDescn() { - return descn; - } - - public void setDescn(String descn) { - this.descn = descn; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public String getDevTpeIds() { - return devTpeIds; - } - - public void setDevTpeIds(String devTpeIds) { - this.devTpeIds = devTpeIds; - } + @TableField(exist = false) + private String projectStatus; @Override protected Serializable pkVal() { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java new file mode 100644 index 0000000..bd9bcd4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.service; + + +public interface AbstractDictService { + + String getDictNameByCode(String var1, String var2); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java new file mode 100644 index 0000000..2adceb6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java @@ -0,0 +1,5 @@ +package com.casic.missiles.modular.system.service; + +public interface ICasicDictService extends AbstractDictService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java index 3c27bd1..8104f6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.modular.system.model.Project; import com.baomidou.mybatisplus.service.IService; @@ -13,4 +14,5 @@ */ public interface IProjectService extends IService { + Page listPage(Page page, String projectName, String projectStatus) throws Exception; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java new file mode 100644 index 0000000..69adc96 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dao.DictMapper; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.service.ICasicDictService; +import lombok.AllArgsConstructor; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.Iterator; +import java.util.List; + +/** + * @author cz + * @date 2023-5-22 + */ +@Service +@AllArgsConstructor +public class DefaultCasicDictServiceImpl implements ICasicDictService { + + private final DictMapper dictMapper; + + @Override + @Cacheable( + value = {"CONSTANT_DICT"}, + key = "'dict_code_'+#code+'-'+#val" + ) + public String getDictNameByCode(String code, String val) { + List dictList = this.findInDictByCode(code); + if (!CollectionUtils.isEmpty(dictList)) { + Iterator var4 = dictList.iterator(); + while (var4.hasNext()) { + Dict item = (Dict) var4.next(); + if (item.getCode() != null && item.getCode().equals(val)) { + return item.getName(); + } + } + } + return ""; + } + + private List findInDictByCode(String code) { + Dict dict=new Dict(); + dict.setCode(code); + dict = this.dictMapper.selectOne(dict); + if (dict == null) { + return null; + } else { + EntityWrapper wrapper = new EntityWrapper<>(); + List dicts = this.dictMapper.selectList(wrapper.eq("pid", dict.getId())); + return dicts != null && dicts.size() != 0 ? dicts : null; + } + } +} 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 1718055..9d9b5fc 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 @@ -13,6 +13,7 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -79,6 +80,7 @@ } + @Override public List selectDeviceTypeList() { return this.baseMapper.selectDeviceTypeList(); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java index 34655b0..d0bcaf4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -1,20 +1,98 @@ package com.casic.missiles.modular.system.service.impl; +import com.alibaba.druid.util.StringUtils; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.util.DictCodeUtils; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; /** *

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

* * @author stylefeng123 * @since 2020-03-18 */ @Service -public class ProjectServiceImpl extends ServiceImpl implements IProjectService { +@AllArgsConstructor +public class ProjectServiceImpl extends ServiceImpl implements IProjectService, ProjectStatusEnum { + private final IProductDeviceTypeService deviceTypeService; + + @Override + public Page listPage(Page page, String projectName, String projectStatus) throws Exception { + EntityWrapper query = initProjectParm(projectName, projectStatus); + page = this.selectPage(page, query); + for (Project project : page.getRecords()) { + //开始时间为空判断为已经执行 + if (ObjectUtils.isEmpty(project.getProjectStartTime())) { + project.setProjectStatus(HAS_EXCUTE); + //小于开始时间为空判断为未执行 + }else if(project.getProjectStartTime().compareTo(new Date())< 0){ + project.setProjectStatus(NOT_EXCUTE); + //小于结束时间为空判断为正在执行 + }else if(!ObjectUtils.isEmpty(project.getProjectEndTime()) && + project.getProjectEndTime().compareTo(new Date())<0){ + project.setProjectStatus(EXCUTEING); + }else { + project.setProjectStatus(HAS_EXCUTE); + } + project.setDevTpeNames(deviceTypeTransName(project.getDevTpeIds())); + DictCodeUtils.convertDictCodeToName(project); + } + return page; + } + + private String deviceTypeTransName(String deviceTyps) { + if (StringUtils.isEmpty(deviceTyps)) { + return null; + } + List deviceTypeDtos = deviceTypeService.selectDeviceTypeList(); + Map deviceTypeMap = deviceTypeDtos.stream().collect( + Collectors.toMap(DeviceTypeDto::getId, DeviceTypeDto::getProductName) + ); + String[] deviceTypList = deviceTyps.split(","); + String deviceTypeNames = ""; + for (String deviceType : deviceTypList) { + if(!StringUtils.isEmpty(deviceType)){ + deviceTypeNames += deviceTypeMap.get(Long.valueOf(deviceType)) + ","; + } + } + if (!StringUtils.isEmpty(deviceTypeNames)) { + deviceTypeNames = deviceTypeNames.substring(0, deviceTypeNames.length() - 1); + } + return deviceTypeNames; + } + + private EntityWrapper initProjectParm(String projectName, String projectStatus) { + EntityWrapper query = new EntityWrapper<>(); + query.like("project_name", projectName); + if (!StringUtils.isEmpty(projectStatus) && !"0".equals(projectStatus)) { + if ("1".equals(projectStatus)) { + query.lt("project_start_time", new Date()); + } else if ("2".equals(projectStatus)) { + query.ge("project_start_time", new Date()); + query.lt("project_end_time", new Date()); + } else { + query.ge("project_end_time", new Date()); + } + } + return query; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java b/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java new file mode 100644 index 0000000..c2e1c17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.util; + +import com.casic.missiles.modular.system.enums.BusinessException; +import com.casic.missiles.modular.system.service.AbstractDictService; +import com.casic.missiles.modular.annotation.DictCodeField; + +import org.apache.commons.lang3.StringUtils; + +import java.lang.reflect.Field; +import java.util.Objects; + +/** + * 字典utils + */ +public class DictCodeUtils { + /** + * 字典code转换成名称 + */ + public static void convertDictCodeToName(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null) { + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) { + continue; + } + String name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + String destFieldName = field.getName() + "Name"; + Field destField = object.getClass().getDeclaredField(destFieldName); + if (destField == null) { + throw new BusinessException(500, "字典名称字段不存在"); + } + if (!destField.isAccessible()) { + destField.setAccessible(true); + } + destField.set(object, name); + } + } + } + + + /** + * 多个字典code(逗号隔开),转换成名称 + */ + public static void convertDictMultiCodeToName(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null) { + + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) { + continue; + } + String name = ""; + //进行字典值得获取 + if (field.get(object).toString().contains(",")) { + String[] filedObjects = field.get(object).toString().split(","); + for (String filedObject : filedObjects) { + name += dictService.getDictNameByCode(dictCodeField.cacheName(), filedObject) + ","; + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } else { + name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } + String destFieldName = field.getName() + "Name"; + Field destField = object.getClass().getDeclaredField(destFieldName); + if (destField == null) { + throw new BusinessException(500, "字典名称字段不存在"); + } + if (!destField.isAccessible()) { + destField.setAccessible(true); + } + destField.set(object, name); + } + } + } + + /** + * 校验字典code是否合法 + * + * @param object + * @return + */ + public static boolean validDictCode(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null && !field.get(object).equals("")) { + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + // 判断字典code是否需要校验 + if (!dictCodeField.needValid()) { + continue; + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + String name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + dictCodeField.message(); + } + } + return true; + } + +} \ No newline at end of file diff --git a/casic-device/src/main/java/com/casic/missiles/modular/util/SpringContextUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/util/SpringContextUtil.java new file mode 100644 index 0000000..fdb17e8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/util/SpringContextUtil.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.util; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanFactoryPostProcessor; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.beans.factory.support.AbstractBeanDefinition; +import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.beans.factory.support.BeanDefinitionReaderUtils; +import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.ForkJoinPool; +import java.util.function.Function; + +/** + * @Description: Spring应用上下文工具 + * @Author: wangpeng + * @Date: 2022/8/11 18:04 + */ +@Component +public class SpringContextUtil implements BeanFactoryPostProcessor, ApplicationContextAware { + /** + * Spring应用上下文环境 + */ + private static ApplicationContext applicationContext; + + private static ConfigurableListableBeanFactory beanFactory; + + /** + * 实现ApplicationContextAware接口的回调方法,设置上下文环境 + */ + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + SpringContextUtil.applicationContext = applicationContext; + } + + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { + SpringContextUtil.beanFactory = beanFactory; + } + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + +// public static Object getBean(String beanId) throws BeansException { +// return applicationContext.getBean(beanId); +// } + + public static T getBean(Class requiredType) { + return (T) applicationContext.getBean(requiredType); + } + + @SuppressWarnings("unchecked") + public static T getBean(String name) throws BeansException { + return (T) beanFactory.getBean(name); + } + + public static boolean containsBean(String name) { + return beanFactory.containsBean(name); + } + + public static T registerBean(String beanName, Class clazz, Function function) { + // 生成bean定义 + BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(clazz); + // 执行bean处理函数 + AbstractBeanDefinition beanDefinition = function.apply(beanDefinitionBuilder); + BeanDefinitionRegistry beanFactory = (BeanDefinitionRegistry) SpringContextUtil.beanFactory; + // 判断是否通过beanName注册 + if (StringUtils.isNotBlank(beanName) && !containsBean(beanName)) { + beanFactory.registerBeanDefinition(beanName, beanDefinition); + return getBean(beanName); + } else { + // 非命名bean注册 + String name = BeanDefinitionReaderUtils.registerWithGeneratedName(beanDefinition, beanFactory); + return getBean(name); + } + } + + public static T registerBean(String beanName, Class clazz, List args, Map property) { + return registerBean(beanName, clazz, beanDefinitionBuilder -> { + // 放入构造参数 + if (!CollectionUtils.isEmpty(args)) { + args.forEach(beanDefinitionBuilder::addConstructorArgValue); + } + // 放入属性 + if (!CollectionUtils.isEmpty(property)) { + property.forEach(beanDefinitionBuilder::addPropertyValue); + } + return beanDefinitionBuilder.getBeanDefinition(); + }); + } + + @Bean + public ForkJoinPool forkJoinPool() { + return new ForkJoinPool(100); + } + +} 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 89face9..d6b729c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.modular.annotation.DictCodeField; +import com.casic.missiles.modular.system.enums.DictEnum; +import lombok.Data; + import java.io.Serializable; import java.util.Date; @@ -16,6 +20,7 @@ * @author stylefeng123 * @since 2020-03-18 */ +@Data @TableName("product_project") public class Project extends Model { @@ -29,66 +34,17 @@ @TableField("project_manager") private String projectManager; private String descn; + @TableField("project_start_time") + private Date projectStartTime; + @TableField("project_end_time") + private Date projectEndTime; private String devTpeIds; + @TableField(exist = false) + private String devTpeNames; @TableField("createtime") private Date createtime; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - 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 getProjectManager() { - return projectManager; - } - - public void setProjectManager(String projectManager) { - this.projectManager = projectManager; - } - - public String getDescn() { - return descn; - } - - public void setDescn(String descn) { - this.descn = descn; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public String getDevTpeIds() { - return devTpeIds; - } - - public void setDevTpeIds(String devTpeIds) { - this.devTpeIds = devTpeIds; - } + @TableField(exist = false) + private String projectStatus; @Override protected Serializable pkVal() { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java new file mode 100644 index 0000000..bd9bcd4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.service; + + +public interface AbstractDictService { + + String getDictNameByCode(String var1, String var2); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java new file mode 100644 index 0000000..2adceb6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java @@ -0,0 +1,5 @@ +package com.casic.missiles.modular.system.service; + +public interface ICasicDictService extends AbstractDictService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java index 3c27bd1..8104f6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.modular.system.model.Project; import com.baomidou.mybatisplus.service.IService; @@ -13,4 +14,5 @@ */ public interface IProjectService extends IService { + Page listPage(Page page, String projectName, String projectStatus) throws Exception; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java new file mode 100644 index 0000000..69adc96 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dao.DictMapper; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.service.ICasicDictService; +import lombok.AllArgsConstructor; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.Iterator; +import java.util.List; + +/** + * @author cz + * @date 2023-5-22 + */ +@Service +@AllArgsConstructor +public class DefaultCasicDictServiceImpl implements ICasicDictService { + + private final DictMapper dictMapper; + + @Override + @Cacheable( + value = {"CONSTANT_DICT"}, + key = "'dict_code_'+#code+'-'+#val" + ) + public String getDictNameByCode(String code, String val) { + List dictList = this.findInDictByCode(code); + if (!CollectionUtils.isEmpty(dictList)) { + Iterator var4 = dictList.iterator(); + while (var4.hasNext()) { + Dict item = (Dict) var4.next(); + if (item.getCode() != null && item.getCode().equals(val)) { + return item.getName(); + } + } + } + return ""; + } + + private List findInDictByCode(String code) { + Dict dict=new Dict(); + dict.setCode(code); + dict = this.dictMapper.selectOne(dict); + if (dict == null) { + return null; + } else { + EntityWrapper wrapper = new EntityWrapper<>(); + List dicts = this.dictMapper.selectList(wrapper.eq("pid", dict.getId())); + return dicts != null && dicts.size() != 0 ? dicts : null; + } + } +} 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 1718055..9d9b5fc 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 @@ -13,6 +13,7 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -79,6 +80,7 @@ } + @Override public List selectDeviceTypeList() { return this.baseMapper.selectDeviceTypeList(); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java index 34655b0..d0bcaf4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -1,20 +1,98 @@ package com.casic.missiles.modular.system.service.impl; +import com.alibaba.druid.util.StringUtils; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.util.DictCodeUtils; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; /** *

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

* * @author stylefeng123 * @since 2020-03-18 */ @Service -public class ProjectServiceImpl extends ServiceImpl implements IProjectService { +@AllArgsConstructor +public class ProjectServiceImpl extends ServiceImpl implements IProjectService, ProjectStatusEnum { + private final IProductDeviceTypeService deviceTypeService; + + @Override + public Page listPage(Page page, String projectName, String projectStatus) throws Exception { + EntityWrapper query = initProjectParm(projectName, projectStatus); + page = this.selectPage(page, query); + for (Project project : page.getRecords()) { + //开始时间为空判断为已经执行 + if (ObjectUtils.isEmpty(project.getProjectStartTime())) { + project.setProjectStatus(HAS_EXCUTE); + //小于开始时间为空判断为未执行 + }else if(project.getProjectStartTime().compareTo(new Date())< 0){ + project.setProjectStatus(NOT_EXCUTE); + //小于结束时间为空判断为正在执行 + }else if(!ObjectUtils.isEmpty(project.getProjectEndTime()) && + project.getProjectEndTime().compareTo(new Date())<0){ + project.setProjectStatus(EXCUTEING); + }else { + project.setProjectStatus(HAS_EXCUTE); + } + project.setDevTpeNames(deviceTypeTransName(project.getDevTpeIds())); + DictCodeUtils.convertDictCodeToName(project); + } + return page; + } + + private String deviceTypeTransName(String deviceTyps) { + if (StringUtils.isEmpty(deviceTyps)) { + return null; + } + List deviceTypeDtos = deviceTypeService.selectDeviceTypeList(); + Map deviceTypeMap = deviceTypeDtos.stream().collect( + Collectors.toMap(DeviceTypeDto::getId, DeviceTypeDto::getProductName) + ); + String[] deviceTypList = deviceTyps.split(","); + String deviceTypeNames = ""; + for (String deviceType : deviceTypList) { + if(!StringUtils.isEmpty(deviceType)){ + deviceTypeNames += deviceTypeMap.get(Long.valueOf(deviceType)) + ","; + } + } + if (!StringUtils.isEmpty(deviceTypeNames)) { + deviceTypeNames = deviceTypeNames.substring(0, deviceTypeNames.length() - 1); + } + return deviceTypeNames; + } + + private EntityWrapper initProjectParm(String projectName, String projectStatus) { + EntityWrapper query = new EntityWrapper<>(); + query.like("project_name", projectName); + if (!StringUtils.isEmpty(projectStatus) && !"0".equals(projectStatus)) { + if ("1".equals(projectStatus)) { + query.lt("project_start_time", new Date()); + } else if ("2".equals(projectStatus)) { + query.ge("project_start_time", new Date()); + query.lt("project_end_time", new Date()); + } else { + query.ge("project_end_time", new Date()); + } + } + return query; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java b/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java new file mode 100644 index 0000000..c2e1c17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.util; + +import com.casic.missiles.modular.system.enums.BusinessException; +import com.casic.missiles.modular.system.service.AbstractDictService; +import com.casic.missiles.modular.annotation.DictCodeField; + +import org.apache.commons.lang3.StringUtils; + +import java.lang.reflect.Field; +import java.util.Objects; + +/** + * 字典utils + */ +public class DictCodeUtils { + /** + * 字典code转换成名称 + */ + public static void convertDictCodeToName(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null) { + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) { + continue; + } + String name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + String destFieldName = field.getName() + "Name"; + Field destField = object.getClass().getDeclaredField(destFieldName); + if (destField == null) { + throw new BusinessException(500, "字典名称字段不存在"); + } + if (!destField.isAccessible()) { + destField.setAccessible(true); + } + destField.set(object, name); + } + } + } + + + /** + * 多个字典code(逗号隔开),转换成名称 + */ + public static void convertDictMultiCodeToName(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null) { + + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) { + continue; + } + String name = ""; + //进行字典值得获取 + if (field.get(object).toString().contains(",")) { + String[] filedObjects = field.get(object).toString().split(","); + for (String filedObject : filedObjects) { + name += dictService.getDictNameByCode(dictCodeField.cacheName(), filedObject) + ","; + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } else { + name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } + String destFieldName = field.getName() + "Name"; + Field destField = object.getClass().getDeclaredField(destFieldName); + if (destField == null) { + throw new BusinessException(500, "字典名称字段不存在"); + } + if (!destField.isAccessible()) { + destField.setAccessible(true); + } + destField.set(object, name); + } + } + } + + /** + * 校验字典code是否合法 + * + * @param object + * @return + */ + public static boolean validDictCode(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null && !field.get(object).equals("")) { + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + // 判断字典code是否需要校验 + if (!dictCodeField.needValid()) { + continue; + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + String name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + dictCodeField.message(); + } + } + return true; + } + +} \ No newline at end of file diff --git a/casic-device/src/main/java/com/casic/missiles/modular/util/SpringContextUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/util/SpringContextUtil.java new file mode 100644 index 0000000..fdb17e8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/util/SpringContextUtil.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.util; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanFactoryPostProcessor; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.beans.factory.support.AbstractBeanDefinition; +import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.beans.factory.support.BeanDefinitionReaderUtils; +import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.ForkJoinPool; +import java.util.function.Function; + +/** + * @Description: Spring应用上下文工具 + * @Author: wangpeng + * @Date: 2022/8/11 18:04 + */ +@Component +public class SpringContextUtil implements BeanFactoryPostProcessor, ApplicationContextAware { + /** + * Spring应用上下文环境 + */ + private static ApplicationContext applicationContext; + + private static ConfigurableListableBeanFactory beanFactory; + + /** + * 实现ApplicationContextAware接口的回调方法,设置上下文环境 + */ + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + SpringContextUtil.applicationContext = applicationContext; + } + + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { + SpringContextUtil.beanFactory = beanFactory; + } + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + +// public static Object getBean(String beanId) throws BeansException { +// return applicationContext.getBean(beanId); +// } + + public static T getBean(Class requiredType) { + return (T) applicationContext.getBean(requiredType); + } + + @SuppressWarnings("unchecked") + public static T getBean(String name) throws BeansException { + return (T) beanFactory.getBean(name); + } + + public static boolean containsBean(String name) { + return beanFactory.containsBean(name); + } + + public static T registerBean(String beanName, Class clazz, Function function) { + // 生成bean定义 + BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(clazz); + // 执行bean处理函数 + AbstractBeanDefinition beanDefinition = function.apply(beanDefinitionBuilder); + BeanDefinitionRegistry beanFactory = (BeanDefinitionRegistry) SpringContextUtil.beanFactory; + // 判断是否通过beanName注册 + if (StringUtils.isNotBlank(beanName) && !containsBean(beanName)) { + beanFactory.registerBeanDefinition(beanName, beanDefinition); + return getBean(beanName); + } else { + // 非命名bean注册 + String name = BeanDefinitionReaderUtils.registerWithGeneratedName(beanDefinition, beanFactory); + return getBean(name); + } + } + + public static T registerBean(String beanName, Class clazz, List args, Map property) { + return registerBean(beanName, clazz, beanDefinitionBuilder -> { + // 放入构造参数 + if (!CollectionUtils.isEmpty(args)) { + args.forEach(beanDefinitionBuilder::addConstructorArgValue); + } + // 放入属性 + if (!CollectionUtils.isEmpty(property)) { + property.forEach(beanDefinitionBuilder::addPropertyValue); + } + return beanDefinitionBuilder.getBeanDefinition(); + }); + } + + @Bean + public ForkJoinPool forkJoinPool() { + return new ForkJoinPool(100); + } + +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 449ad98..6ba97ff 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -5,9 +5,9 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.18.188:3306/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull - username: pcroot - password: pcroot#203 + url: jdbc:mysql://139.198.18.188:3306/product_device_cs?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: brroot + password: brroot#203 initial-size: 2 min-idle: 1 #flowable数据源和多数据源配置 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 c3c7c17..256e658 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 @@ -27,7 +27,7 @@ import java.util.List; /** - * 施工添加设备控制器 + * 施工日志添加设备控制器 * * @author dev * @Date 2020-05-24 11:21:38a diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java new file mode 100644 index 0000000..84b21df --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserController.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.app.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/app/user") +public class AppUserController { + + + + + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java index cccb1c6..174f4f0 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppUserOpenidController.java @@ -154,4 +154,5 @@ AppUserOpenid appUserOpenid = appUserOpenidService.selectOne(ew); return ResponseData.success(appUserOpenid); } + } 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 7c2865f..9804cae 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 @@ -198,7 +198,7 @@ //删除所有的文件日志 this.batchExportLogMapper.delete(null); //删除所有历史文件 - deleteFile(new File(filePath),String.valueOf(stampeDir)); + deleteFile(new File(filePath), String.valueOf(stampeDir)); //批量导入日志 batchExportLogsList.stream().forEach( batchExportLog -> this.batchExportLogMapper.insert(batchExportLog) @@ -209,10 +209,7 @@ Map map = new HashMap(); map.put("message", "你在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(stampeDir)) + "的文件导出已经生成了,请到导出列表页面查看"); map.put("type", "alarm"); - for (int i = 0; i < 3; i++) { - webSocket.sendListMessage(userList, JSON.toJSONString(map)); - Thread.sleep(3000); - } + webSocket.sendListMessage(userList, JSON.toJSONString(map)); break; } Thread.sleep(5000); @@ -225,9 +222,9 @@ /** * 对导出产生的日志、进行清除,还原空间 */ - private void deleteFile(File invalidFile,String currentFileStr) { + private void deleteFile(File invalidFile, String currentFileStr) { //为当前文件目录删除 - if(invalidFile.getAbsoluteFile().getName().equals(currentFileStr)){ + if (invalidFile.getAbsoluteFile().getName().equals(currentFileStr)) { return; } //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -235,13 +232,13 @@ if (files != null) {//如果包含文件进行删除操作 for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { - if (!invalidFile.getAbsolutePath().equals(filePath.substring(0,filePath.length()-1))) { + if (!invalidFile.getAbsolutePath().equals(filePath.substring(0, filePath.length() - 1))) { //删除子文件 files[i].delete(); } } else if (files[i].isDirectory()) { //通过递归的方法找到子目录的文件 - deleteFile(files[i],currentFileStr); + deleteFile(files[i], currentFileStr); } } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index f5b11d5..b65ff98 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -67,6 +67,12 @@ + com.casic + casic-admin-core + ${casic.version} + + + org.apache.commons commons-lang3 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java new file mode 100644 index 0000000..b431bfd --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/annotation/DictCodeField.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.annotation; + +import java.lang.annotation.*; + +/** + * 字典字段注解,放在字段上边,用于字典字段的合法性校验,以及字典字段转名字 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DictCodeField { + + /** + * 校验错误信息 + * @return + */ + String message(); + + /** + * cacheName + */ + String cacheName(); + + /** + * 是否校验字典code,默认校验 + * @return + */ + boolean needValid() default true; +} 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 0f993b7..40071c9 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 @@ -62,7 +62,9 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { - return productDeviceTypeService.selectList(null); + Page page=new PageFactory().defaultPage(); + return productDeviceTypeService.selectPageDataScope(permissionService.getCurrUserDataScope(),page,null,null,null); +// return productDeviceTypeService.selectList(null); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 844ace2..c6fab92 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -10,6 +10,7 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; @@ -22,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -56,10 +58,10 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String projectName,String projectStatus) throws Exception{ + Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - page = projectService.selectPage(page, query); + page=projectService.listPage(page,projectName,projectStatus); return new SuccessResponseData(super.packForBT(page)); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java new file mode 100644 index 0000000..7192b5e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessException.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.enums; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Description: 业务异常 + */ +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + @Getter + @Setter + private Integer code; + @Getter + @Setter + private String message; + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BusinessException(BusinessExceptionEnum exceptionEnum) { + super(exceptionEnum.getMessage()); + this.code = exceptionEnum.getCode(); + this.message = exceptionEnum.getMessage(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java new file mode 100644 index 0000000..0ba5b6d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * @Description: + */ +public enum BusinessExceptionEnum { + + ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), + + MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), + DEVICE_REGISTER_FAILED(2500, "设备注册失败"), + RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), + CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"), + CRUISE_DELETE_ERROR(2503, "巡航路径删除过程中对设备操作异常"); + + + private Integer code; + private String message; + + BusinessExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java new file mode 100644 index 0000000..a674125 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public class DictEnum { + + public static String DEVICE_TYPES="deviceTypes"; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java new file mode 100644 index 0000000..3470564 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/ProjectStatusEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface ProjectStatusEnum { + + String NOT_EXCUTE="未开始"; + String EXCUTEING="进行中"; + String HAS_EXCUTE="已结束"; +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 89face9..d6b729c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.modular.annotation.DictCodeField; +import com.casic.missiles.modular.system.enums.DictEnum; +import lombok.Data; + import java.io.Serializable; import java.util.Date; @@ -16,6 +20,7 @@ * @author stylefeng123 * @since 2020-03-18 */ +@Data @TableName("product_project") public class Project extends Model { @@ -29,66 +34,17 @@ @TableField("project_manager") private String projectManager; private String descn; + @TableField("project_start_time") + private Date projectStartTime; + @TableField("project_end_time") + private Date projectEndTime; private String devTpeIds; + @TableField(exist = false) + private String devTpeNames; @TableField("createtime") private Date createtime; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - 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 getProjectManager() { - return projectManager; - } - - public void setProjectManager(String projectManager) { - this.projectManager = projectManager; - } - - public String getDescn() { - return descn; - } - - public void setDescn(String descn) { - this.descn = descn; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public String getDevTpeIds() { - return devTpeIds; - } - - public void setDevTpeIds(String devTpeIds) { - this.devTpeIds = devTpeIds; - } + @TableField(exist = false) + private String projectStatus; @Override protected Serializable pkVal() { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java new file mode 100644 index 0000000..bd9bcd4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/AbstractDictService.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.service; + + +public interface AbstractDictService { + + String getDictNameByCode(String var1, String var2); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java new file mode 100644 index 0000000..2adceb6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/ICasicDictService.java @@ -0,0 +1,5 @@ +package com.casic.missiles.modular.system.service; + +public interface ICasicDictService extends AbstractDictService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java index 3c27bd1..8104f6d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.modular.system.model.Project; import com.baomidou.mybatisplus.service.IService; @@ -13,4 +14,5 @@ */ public interface IProjectService extends IService { + Page listPage(Page page, String projectName, String projectStatus) throws Exception; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java new file mode 100644 index 0000000..69adc96 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DefaultCasicDictServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dao.DictMapper; +import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.service.ICasicDictService; +import lombok.AllArgsConstructor; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.Iterator; +import java.util.List; + +/** + * @author cz + * @date 2023-5-22 + */ +@Service +@AllArgsConstructor +public class DefaultCasicDictServiceImpl implements ICasicDictService { + + private final DictMapper dictMapper; + + @Override + @Cacheable( + value = {"CONSTANT_DICT"}, + key = "'dict_code_'+#code+'-'+#val" + ) + public String getDictNameByCode(String code, String val) { + List dictList = this.findInDictByCode(code); + if (!CollectionUtils.isEmpty(dictList)) { + Iterator var4 = dictList.iterator(); + while (var4.hasNext()) { + Dict item = (Dict) var4.next(); + if (item.getCode() != null && item.getCode().equals(val)) { + return item.getName(); + } + } + } + return ""; + } + + private List findInDictByCode(String code) { + Dict dict=new Dict(); + dict.setCode(code); + dict = this.dictMapper.selectOne(dict); + if (dict == null) { + return null; + } else { + EntityWrapper wrapper = new EntityWrapper<>(); + List dicts = this.dictMapper.selectList(wrapper.eq("pid", dict.getId())); + return dicts != null && dicts.size() != 0 ? dicts : null; + } + } +} 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 1718055..9d9b5fc 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 @@ -13,6 +13,7 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -79,6 +80,7 @@ } + @Override public List selectDeviceTypeList() { return this.baseMapper.selectDeviceTypeList(); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java index 34655b0..d0bcaf4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -1,20 +1,98 @@ package com.casic.missiles.modular.system.service.impl; +import com.alibaba.druid.util.StringUtils; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.enums.ProjectStatusEnum; import com.casic.missiles.modular.system.model.Project; import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.util.DictCodeUtils; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; /** *

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

* * @author stylefeng123 * @since 2020-03-18 */ @Service -public class ProjectServiceImpl extends ServiceImpl implements IProjectService { +@AllArgsConstructor +public class ProjectServiceImpl extends ServiceImpl implements IProjectService, ProjectStatusEnum { + private final IProductDeviceTypeService deviceTypeService; + + @Override + public Page listPage(Page page, String projectName, String projectStatus) throws Exception { + EntityWrapper query = initProjectParm(projectName, projectStatus); + page = this.selectPage(page, query); + for (Project project : page.getRecords()) { + //开始时间为空判断为已经执行 + if (ObjectUtils.isEmpty(project.getProjectStartTime())) { + project.setProjectStatus(HAS_EXCUTE); + //小于开始时间为空判断为未执行 + }else if(project.getProjectStartTime().compareTo(new Date())< 0){ + project.setProjectStatus(NOT_EXCUTE); + //小于结束时间为空判断为正在执行 + }else if(!ObjectUtils.isEmpty(project.getProjectEndTime()) && + project.getProjectEndTime().compareTo(new Date())<0){ + project.setProjectStatus(EXCUTEING); + }else { + project.setProjectStatus(HAS_EXCUTE); + } + project.setDevTpeNames(deviceTypeTransName(project.getDevTpeIds())); + DictCodeUtils.convertDictCodeToName(project); + } + return page; + } + + private String deviceTypeTransName(String deviceTyps) { + if (StringUtils.isEmpty(deviceTyps)) { + return null; + } + List deviceTypeDtos = deviceTypeService.selectDeviceTypeList(); + Map deviceTypeMap = deviceTypeDtos.stream().collect( + Collectors.toMap(DeviceTypeDto::getId, DeviceTypeDto::getProductName) + ); + String[] deviceTypList = deviceTyps.split(","); + String deviceTypeNames = ""; + for (String deviceType : deviceTypList) { + if(!StringUtils.isEmpty(deviceType)){ + deviceTypeNames += deviceTypeMap.get(Long.valueOf(deviceType)) + ","; + } + } + if (!StringUtils.isEmpty(deviceTypeNames)) { + deviceTypeNames = deviceTypeNames.substring(0, deviceTypeNames.length() - 1); + } + return deviceTypeNames; + } + + private EntityWrapper initProjectParm(String projectName, String projectStatus) { + EntityWrapper query = new EntityWrapper<>(); + query.like("project_name", projectName); + if (!StringUtils.isEmpty(projectStatus) && !"0".equals(projectStatus)) { + if ("1".equals(projectStatus)) { + query.lt("project_start_time", new Date()); + } else if ("2".equals(projectStatus)) { + query.ge("project_start_time", new Date()); + query.lt("project_end_time", new Date()); + } else { + query.ge("project_end_time", new Date()); + } + } + return query; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java b/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java new file mode 100644 index 0000000..c2e1c17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/util/DictCodeUtils.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.util; + +import com.casic.missiles.modular.system.enums.BusinessException; +import com.casic.missiles.modular.system.service.AbstractDictService; +import com.casic.missiles.modular.annotation.DictCodeField; + +import org.apache.commons.lang3.StringUtils; + +import java.lang.reflect.Field; +import java.util.Objects; + +/** + * 字典utils + */ +public class DictCodeUtils { + /** + * 字典code转换成名称 + */ + public static void convertDictCodeToName(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null) { + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) { + continue; + } + String name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + String destFieldName = field.getName() + "Name"; + Field destField = object.getClass().getDeclaredField(destFieldName); + if (destField == null) { + throw new BusinessException(500, "字典名称字段不存在"); + } + if (!destField.isAccessible()) { + destField.setAccessible(true); + } + destField.set(object, name); + } + } + } + + + /** + * 多个字典code(逗号隔开),转换成名称 + */ + public static void convertDictMultiCodeToName(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null) { + + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) { + continue; + } + String name = ""; + //进行字典值得获取 + if (field.get(object).toString().contains(",")) { + String[] filedObjects = field.get(object).toString().split(","); + for (String filedObject : filedObjects) { + name += dictService.getDictNameByCode(dictCodeField.cacheName(), filedObject) + ","; + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } else { + name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + } + String destFieldName = field.getName() + "Name"; + Field destField = object.getClass().getDeclaredField(destFieldName); + if (destField == null) { + throw new BusinessException(500, "字典名称字段不存在"); + } + if (!destField.isAccessible()) { + destField.setAccessible(true); + } + destField.set(object, name); + } + } + } + + /** + * 校验字典code是否合法 + * + * @param object + * @return + */ + public static boolean validDictCode(Object object) throws Exception { + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null && !field.get(object).equals("")) { + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + // 判断字典code是否需要校验 + if (!dictCodeField.needValid()) { + continue; + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + String name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString()); + if (StringUtils.isEmpty(name)) { + throw new BusinessException(500, dictCodeField.message()); + } + dictCodeField.message(); + } + } + return true; + } + +} \ No newline at end of file diff --git a/casic-device/src/main/java/com/casic/missiles/modular/util/SpringContextUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/util/SpringContextUtil.java new file mode 100644 index 0000000..fdb17e8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/util/SpringContextUtil.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.util; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanFactoryPostProcessor; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.beans.factory.support.AbstractBeanDefinition; +import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.beans.factory.support.BeanDefinitionReaderUtils; +import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.ForkJoinPool; +import java.util.function.Function; + +/** + * @Description: Spring应用上下文工具 + * @Author: wangpeng + * @Date: 2022/8/11 18:04 + */ +@Component +public class SpringContextUtil implements BeanFactoryPostProcessor, ApplicationContextAware { + /** + * Spring应用上下文环境 + */ + private static ApplicationContext applicationContext; + + private static ConfigurableListableBeanFactory beanFactory; + + /** + * 实现ApplicationContextAware接口的回调方法,设置上下文环境 + */ + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + SpringContextUtil.applicationContext = applicationContext; + } + + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { + SpringContextUtil.beanFactory = beanFactory; + } + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + +// public static Object getBean(String beanId) throws BeansException { +// return applicationContext.getBean(beanId); +// } + + public static T getBean(Class requiredType) { + return (T) applicationContext.getBean(requiredType); + } + + @SuppressWarnings("unchecked") + public static T getBean(String name) throws BeansException { + return (T) beanFactory.getBean(name); + } + + public static boolean containsBean(String name) { + return beanFactory.containsBean(name); + } + + public static T registerBean(String beanName, Class clazz, Function function) { + // 生成bean定义 + BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(clazz); + // 执行bean处理函数 + AbstractBeanDefinition beanDefinition = function.apply(beanDefinitionBuilder); + BeanDefinitionRegistry beanFactory = (BeanDefinitionRegistry) SpringContextUtil.beanFactory; + // 判断是否通过beanName注册 + if (StringUtils.isNotBlank(beanName) && !containsBean(beanName)) { + beanFactory.registerBeanDefinition(beanName, beanDefinition); + return getBean(beanName); + } else { + // 非命名bean注册 + String name = BeanDefinitionReaderUtils.registerWithGeneratedName(beanDefinition, beanFactory); + return getBean(name); + } + } + + public static T registerBean(String beanName, Class clazz, List args, Map property) { + return registerBean(beanName, clazz, beanDefinitionBuilder -> { + // 放入构造参数 + if (!CollectionUtils.isEmpty(args)) { + args.forEach(beanDefinitionBuilder::addConstructorArgValue); + } + // 放入属性 + if (!CollectionUtils.isEmpty(property)) { + property.forEach(beanDefinitionBuilder::addPropertyValue); + } + return beanDefinitionBuilder.getBeanDefinition(); + }); + } + + @Bean + public ForkJoinPool forkJoinPool() { + return new ForkJoinPool(100); + } + +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 449ad98..6ba97ff 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -5,9 +5,9 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://139.198.18.188:3306/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull - username: pcroot - password: pcroot#203 + url: jdbc:mysql://139.198.18.188:3306/product_device_cs?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: brroot + password: brroot#203 initial-size: 2 min-idle: 1 #flowable数据源和多数据源配置 diff --git a/pom.xml b/pom.xml index 33da07e..9135d4a 100644 --- a/pom.xml +++ b/pom.xml @@ -73,11 +73,11 @@ - - - - - + + com.baomidou + mybatisplus-spring-boot-starter + ${mybatisplus-spring-boot-starter.version} + org.apache.shiro