diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java new file mode 100644 index 0000000..016e591 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java @@ -0,0 +1,158 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.model.CommonApproval; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计划表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@TableName("eqpt_plan") +public class Plan extends CommonApproval implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 计划编号 + */ + @ApiModelProperty("计划编号") + @TableField("plan_no") + private String planNo; + + /** + * 计划名称 + */ + @ApiModelProperty("计划名称") + @TableField("plan_name") + private String planName; + + /** + * 计划分类(原始/追加) + */ + @ApiModelProperty("计划分类(字典值,原始/追加)") + @TableField("plan_category") + private String planCategory; + + /** + * 计划类型(年/季/月) + */ + @ApiModelProperty("计划类型(字典值,年/季/月)") + @TableField("plan_type") + private String planType; + + /** + * 年份 + */ + @ApiModelProperty("年份") + @TableField("year") + private String year; + + /** + * 季度 + */ + @ApiModelProperty("季度") + @TableField("season") + private String season; + + /** + * 月份 + */ + @ApiModelProperty("月份") + @TableField("month") + private String month; + + /** + * 备注 + */ + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + @TableField("create_user_id") + private Long createUserId; + + /** + * 创建人姓名 + */ + @ApiModelProperty("创建人姓名") + @TableField("create_user_name") + private String createUserName; + + /** + * 创建单位id + */ + @ApiModelProperty("创建单位id") + @TableField("create_dept_id") + private Long createDeptId; + + /** + * 创建单位名称 + */ + @ApiModelProperty("创建单位名称") + @TableField("create_dept_name") + private String createDeptName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @TableField("update_time") + private Date updateTime; + + /** + * 流程实例id + */ + @ApiModelProperty("流程实例id") + @TableField("process_id") + private String processId; + + /** + * 审批状态 + */ + @ApiModelProperty("审批状态") + @TableField("approval_status") + private String approvalStatus; + + @ApiModelProperty("任务id") + @TableField(exist = false) + private String taskId; + + @ApiModelProperty("可选决策项") + @TableField(exist = false) + private Integer decisionItem; + + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java new file mode 100644 index 0000000..016e591 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java @@ -0,0 +1,158 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.model.CommonApproval; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计划表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@TableName("eqpt_plan") +public class Plan extends CommonApproval implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 计划编号 + */ + @ApiModelProperty("计划编号") + @TableField("plan_no") + private String planNo; + + /** + * 计划名称 + */ + @ApiModelProperty("计划名称") + @TableField("plan_name") + private String planName; + + /** + * 计划分类(原始/追加) + */ + @ApiModelProperty("计划分类(字典值,原始/追加)") + @TableField("plan_category") + private String planCategory; + + /** + * 计划类型(年/季/月) + */ + @ApiModelProperty("计划类型(字典值,年/季/月)") + @TableField("plan_type") + private String planType; + + /** + * 年份 + */ + @ApiModelProperty("年份") + @TableField("year") + private String year; + + /** + * 季度 + */ + @ApiModelProperty("季度") + @TableField("season") + private String season; + + /** + * 月份 + */ + @ApiModelProperty("月份") + @TableField("month") + private String month; + + /** + * 备注 + */ + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + @TableField("create_user_id") + private Long createUserId; + + /** + * 创建人姓名 + */ + @ApiModelProperty("创建人姓名") + @TableField("create_user_name") + private String createUserName; + + /** + * 创建单位id + */ + @ApiModelProperty("创建单位id") + @TableField("create_dept_id") + private Long createDeptId; + + /** + * 创建单位名称 + */ + @ApiModelProperty("创建单位名称") + @TableField("create_dept_name") + private String createDeptName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @TableField("update_time") + private Date updateTime; + + /** + * 流程实例id + */ + @ApiModelProperty("流程实例id") + @TableField("process_id") + private String processId; + + /** + * 审批状态 + */ + @ApiModelProperty("审批状态") + @TableField("approval_status") + private String approvalStatus; + + @ApiModelProperty("任务id") + @TableField(exist = false) + private String taskId; + + @ApiModelProperty("可选决策项") + @TableField(exist = false) + private Integer decisionItem; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java new file mode 100644 index 0000000..df8de12 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java @@ -0,0 +1,67 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计量与设备关联表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@TableName("eqpt_plan_equipment_relation") +public class PlanEquipmentRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId("id") + private Long id; + + /** + * 计量计划id + */ + @TableField("plan_id") + private Long planId; + + /** + * 设备id + */ + @TableField("equipment_id") + private Long equipmentId; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private Date updateTime; + + public PlanEquipmentRelation(Long planId, Long equipmentId) { + this.planId = planId; + this.equipmentId = equipmentId; + } +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java new file mode 100644 index 0000000..016e591 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java @@ -0,0 +1,158 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.model.CommonApproval; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计划表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@TableName("eqpt_plan") +public class Plan extends CommonApproval implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 计划编号 + */ + @ApiModelProperty("计划编号") + @TableField("plan_no") + private String planNo; + + /** + * 计划名称 + */ + @ApiModelProperty("计划名称") + @TableField("plan_name") + private String planName; + + /** + * 计划分类(原始/追加) + */ + @ApiModelProperty("计划分类(字典值,原始/追加)") + @TableField("plan_category") + private String planCategory; + + /** + * 计划类型(年/季/月) + */ + @ApiModelProperty("计划类型(字典值,年/季/月)") + @TableField("plan_type") + private String planType; + + /** + * 年份 + */ + @ApiModelProperty("年份") + @TableField("year") + private String year; + + /** + * 季度 + */ + @ApiModelProperty("季度") + @TableField("season") + private String season; + + /** + * 月份 + */ + @ApiModelProperty("月份") + @TableField("month") + private String month; + + /** + * 备注 + */ + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + @TableField("create_user_id") + private Long createUserId; + + /** + * 创建人姓名 + */ + @ApiModelProperty("创建人姓名") + @TableField("create_user_name") + private String createUserName; + + /** + * 创建单位id + */ + @ApiModelProperty("创建单位id") + @TableField("create_dept_id") + private Long createDeptId; + + /** + * 创建单位名称 + */ + @ApiModelProperty("创建单位名称") + @TableField("create_dept_name") + private String createDeptName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @TableField("update_time") + private Date updateTime; + + /** + * 流程实例id + */ + @ApiModelProperty("流程实例id") + @TableField("process_id") + private String processId; + + /** + * 审批状态 + */ + @ApiModelProperty("审批状态") + @TableField("approval_status") + private String approvalStatus; + + @ApiModelProperty("任务id") + @TableField(exist = false) + private String taskId; + + @ApiModelProperty("可选决策项") + @TableField(exist = false) + private Integer decisionItem; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java new file mode 100644 index 0000000..df8de12 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java @@ -0,0 +1,67 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计量与设备关联表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@TableName("eqpt_plan_equipment_relation") +public class PlanEquipmentRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId("id") + private Long id; + + /** + * 计量计划id + */ + @TableField("plan_id") + private Long planId; + + /** + * 设备id + */ + @TableField("equipment_id") + private Long equipmentId; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private Date updateTime; + + public PlanEquipmentRelation(Long planId, Long equipmentId) { + this.planId = planId; + this.equipmentId = equipmentId; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java new file mode 100644 index 0000000..ecec26d --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.plan.Plan; + +public interface ICommonApprovalService extends IService { + + void removeApproval(Long approvalId); + + ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest); + + ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest); + + ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest); + + ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest); + + void finishApproval(Long approvalId); +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java new file mode 100644 index 0000000..016e591 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java @@ -0,0 +1,158 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.model.CommonApproval; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计划表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@TableName("eqpt_plan") +public class Plan extends CommonApproval implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 计划编号 + */ + @ApiModelProperty("计划编号") + @TableField("plan_no") + private String planNo; + + /** + * 计划名称 + */ + @ApiModelProperty("计划名称") + @TableField("plan_name") + private String planName; + + /** + * 计划分类(原始/追加) + */ + @ApiModelProperty("计划分类(字典值,原始/追加)") + @TableField("plan_category") + private String planCategory; + + /** + * 计划类型(年/季/月) + */ + @ApiModelProperty("计划类型(字典值,年/季/月)") + @TableField("plan_type") + private String planType; + + /** + * 年份 + */ + @ApiModelProperty("年份") + @TableField("year") + private String year; + + /** + * 季度 + */ + @ApiModelProperty("季度") + @TableField("season") + private String season; + + /** + * 月份 + */ + @ApiModelProperty("月份") + @TableField("month") + private String month; + + /** + * 备注 + */ + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + @TableField("create_user_id") + private Long createUserId; + + /** + * 创建人姓名 + */ + @ApiModelProperty("创建人姓名") + @TableField("create_user_name") + private String createUserName; + + /** + * 创建单位id + */ + @ApiModelProperty("创建单位id") + @TableField("create_dept_id") + private Long createDeptId; + + /** + * 创建单位名称 + */ + @ApiModelProperty("创建单位名称") + @TableField("create_dept_name") + private String createDeptName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @TableField("update_time") + private Date updateTime; + + /** + * 流程实例id + */ + @ApiModelProperty("流程实例id") + @TableField("process_id") + private String processId; + + /** + * 审批状态 + */ + @ApiModelProperty("审批状态") + @TableField("approval_status") + private String approvalStatus; + + @ApiModelProperty("任务id") + @TableField(exist = false) + private String taskId; + + @ApiModelProperty("可选决策项") + @TableField(exist = false) + private Integer decisionItem; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java new file mode 100644 index 0000000..df8de12 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java @@ -0,0 +1,67 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计量与设备关联表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@TableName("eqpt_plan_equipment_relation") +public class PlanEquipmentRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId("id") + private Long id; + + /** + * 计量计划id + */ + @TableField("plan_id") + private Long planId; + + /** + * 设备id + */ + @TableField("equipment_id") + private Long equipmentId; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private Date updateTime; + + public PlanEquipmentRelation(Long planId, Long equipmentId) { + this.planId = planId; + this.equipmentId = equipmentId; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java new file mode 100644 index 0000000..ecec26d --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.plan.Plan; + +public interface ICommonApprovalService extends IService { + + void removeApproval(Long approvalId); + + ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest); + + ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest); + + ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest); + + ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest); + + void finishApproval(Long approvalId); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index d4caf2d..c1d4a64 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -22,10 +22,10 @@ String certificateValidStart, String certificateValidEnd); List list(String equipmentNo, String equipmentName,String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); EquipmentInfo detail(Long equipmentId); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java new file mode 100644 index 0000000..016e591 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java @@ -0,0 +1,158 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.model.CommonApproval; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计划表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@TableName("eqpt_plan") +public class Plan extends CommonApproval implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 计划编号 + */ + @ApiModelProperty("计划编号") + @TableField("plan_no") + private String planNo; + + /** + * 计划名称 + */ + @ApiModelProperty("计划名称") + @TableField("plan_name") + private String planName; + + /** + * 计划分类(原始/追加) + */ + @ApiModelProperty("计划分类(字典值,原始/追加)") + @TableField("plan_category") + private String planCategory; + + /** + * 计划类型(年/季/月) + */ + @ApiModelProperty("计划类型(字典值,年/季/月)") + @TableField("plan_type") + private String planType; + + /** + * 年份 + */ + @ApiModelProperty("年份") + @TableField("year") + private String year; + + /** + * 季度 + */ + @ApiModelProperty("季度") + @TableField("season") + private String season; + + /** + * 月份 + */ + @ApiModelProperty("月份") + @TableField("month") + private String month; + + /** + * 备注 + */ + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + @TableField("create_user_id") + private Long createUserId; + + /** + * 创建人姓名 + */ + @ApiModelProperty("创建人姓名") + @TableField("create_user_name") + private String createUserName; + + /** + * 创建单位id + */ + @ApiModelProperty("创建单位id") + @TableField("create_dept_id") + private Long createDeptId; + + /** + * 创建单位名称 + */ + @ApiModelProperty("创建单位名称") + @TableField("create_dept_name") + private String createDeptName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @TableField("update_time") + private Date updateTime; + + /** + * 流程实例id + */ + @ApiModelProperty("流程实例id") + @TableField("process_id") + private String processId; + + /** + * 审批状态 + */ + @ApiModelProperty("审批状态") + @TableField("approval_status") + private String approvalStatus; + + @ApiModelProperty("任务id") + @TableField(exist = false) + private String taskId; + + @ApiModelProperty("可选决策项") + @TableField(exist = false) + private Integer decisionItem; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java new file mode 100644 index 0000000..df8de12 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java @@ -0,0 +1,67 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计量与设备关联表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@TableName("eqpt_plan_equipment_relation") +public class PlanEquipmentRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId("id") + private Long id; + + /** + * 计量计划id + */ + @TableField("plan_id") + private Long planId; + + /** + * 设备id + */ + @TableField("equipment_id") + private Long equipmentId; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private Date updateTime; + + public PlanEquipmentRelation(Long planId, Long equipmentId) { + this.planId = planId; + this.equipmentId = equipmentId; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java new file mode 100644 index 0000000..ecec26d --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.plan.Plan; + +public interface ICommonApprovalService extends IService { + + void removeApproval(Long approvalId); + + ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest); + + ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest); + + ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest); + + ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest); + + void finishApproval(Long approvalId); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index d4caf2d..c1d4a64 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -22,10 +22,10 @@ String certificateValidStart, String certificateValidEnd); List list(String equipmentNo, String equipmentName,String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); EquipmentInfo detail(Long equipmentId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java new file mode 100644 index 0000000..1468ee3 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -0,0 +1,112 @@ +package com.casic.missiles.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; +import org.flowable.engine.runtime.ProcessInstance; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +@Service +public class CommonApprovalServiceImpl, T extends CommonApproval> extends ServiceImpl implements ICommonApprovalService { + + @Autowired + private IBaseApprovalService baseApprovalService; + + private String getProcessId(Long approvalId){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("id",approvalId); + queryWrapper.select("process_id"); + List> approval = this.listMaps(queryWrapper); + if (CollUtil.isNotEmpty(approval) && ObjectUtil.isNotEmpty(approval.get(0).get("process_id"))) { + return approval.get(0).get("process_id").toString(); + } + return null; + } + + private boolean updateProcessId(Long id, String processId){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",id); + updateWrapper.set("process_id",processId); + return this.update(updateWrapper); + } + + @Override + public void removeApproval(Long approvalId) { + String processId = getProcessId(approvalId); + if (StrUtil.isNotEmpty(processId)) { + baseApprovalService.delete(processId); + } + this.removeById(approvalId); + } + + @Override + public ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest) { + String processId = getProcessId(submitRequest.getId()); + if (StrUtil.isEmpty(processId)) { + ReturnDTO submitRes = baseApprovalService.processSubmit(submitRequest.getFormId(), submitRequest.getId()); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(submitRes.getCode())) { + return submitRes; + } + ProcessInstance processInstance = (ProcessInstance) submitRes.getData(); + this.updateProcessId(submitRequest.getId(),processInstance.getProcessInstanceId()); + } else { + baseApprovalService.resubmit(processId); + } + return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); + } + + @Override + public ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest) { + ReturnDTO res = baseApprovalService.revoke(revokeRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(revokeRequest.getId(), ApprovalStatusEnum.CANCELED); + } + + @Override + public ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest) { + return baseApprovalService.agree(agreeRequest); + } + + @Override + public ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest) { + ReturnDTO res = baseApprovalService.reject(refuseRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(refuseRequest.getId(), ApprovalStatusEnum.FAILED); + } + + @Override + public void finishApproval(Long approvalId) { + updateApprovalStatus(approvalId,ApprovalStatusEnum.PASSED); + } + + private ReturnDTO updateApprovalStatus(Serializable approvalId, String approvalStatus) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",approvalId); + updateWrapper.set("approval_status",approvalStatus); + boolean updateRes = this.update(updateWrapper); + return updateRes ? ReturnUtil.success() : ReturnUtil.failed("请求失败"); + } +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java new file mode 100644 index 0000000..016e591 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java @@ -0,0 +1,158 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.model.CommonApproval; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计划表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@TableName("eqpt_plan") +public class Plan extends CommonApproval implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 计划编号 + */ + @ApiModelProperty("计划编号") + @TableField("plan_no") + private String planNo; + + /** + * 计划名称 + */ + @ApiModelProperty("计划名称") + @TableField("plan_name") + private String planName; + + /** + * 计划分类(原始/追加) + */ + @ApiModelProperty("计划分类(字典值,原始/追加)") + @TableField("plan_category") + private String planCategory; + + /** + * 计划类型(年/季/月) + */ + @ApiModelProperty("计划类型(字典值,年/季/月)") + @TableField("plan_type") + private String planType; + + /** + * 年份 + */ + @ApiModelProperty("年份") + @TableField("year") + private String year; + + /** + * 季度 + */ + @ApiModelProperty("季度") + @TableField("season") + private String season; + + /** + * 月份 + */ + @ApiModelProperty("月份") + @TableField("month") + private String month; + + /** + * 备注 + */ + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + @TableField("create_user_id") + private Long createUserId; + + /** + * 创建人姓名 + */ + @ApiModelProperty("创建人姓名") + @TableField("create_user_name") + private String createUserName; + + /** + * 创建单位id + */ + @ApiModelProperty("创建单位id") + @TableField("create_dept_id") + private Long createDeptId; + + /** + * 创建单位名称 + */ + @ApiModelProperty("创建单位名称") + @TableField("create_dept_name") + private String createDeptName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @TableField("update_time") + private Date updateTime; + + /** + * 流程实例id + */ + @ApiModelProperty("流程实例id") + @TableField("process_id") + private String processId; + + /** + * 审批状态 + */ + @ApiModelProperty("审批状态") + @TableField("approval_status") + private String approvalStatus; + + @ApiModelProperty("任务id") + @TableField(exist = false) + private String taskId; + + @ApiModelProperty("可选决策项") + @TableField(exist = false) + private Integer decisionItem; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java new file mode 100644 index 0000000..df8de12 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java @@ -0,0 +1,67 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计量与设备关联表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@TableName("eqpt_plan_equipment_relation") +public class PlanEquipmentRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId("id") + private Long id; + + /** + * 计量计划id + */ + @TableField("plan_id") + private Long planId; + + /** + * 设备id + */ + @TableField("equipment_id") + private Long equipmentId; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private Date updateTime; + + public PlanEquipmentRelation(Long planId, Long equipmentId) { + this.planId = planId; + this.equipmentId = equipmentId; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java new file mode 100644 index 0000000..ecec26d --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.plan.Plan; + +public interface ICommonApprovalService extends IService { + + void removeApproval(Long approvalId); + + ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest); + + ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest); + + ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest); + + ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest); + + void finishApproval(Long approvalId); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index d4caf2d..c1d4a64 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -22,10 +22,10 @@ String certificateValidStart, String certificateValidEnd); List list(String equipmentNo, String equipmentName,String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); EquipmentInfo detail(Long equipmentId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java new file mode 100644 index 0000000..1468ee3 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -0,0 +1,112 @@ +package com.casic.missiles.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; +import org.flowable.engine.runtime.ProcessInstance; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +@Service +public class CommonApprovalServiceImpl, T extends CommonApproval> extends ServiceImpl implements ICommonApprovalService { + + @Autowired + private IBaseApprovalService baseApprovalService; + + private String getProcessId(Long approvalId){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("id",approvalId); + queryWrapper.select("process_id"); + List> approval = this.listMaps(queryWrapper); + if (CollUtil.isNotEmpty(approval) && ObjectUtil.isNotEmpty(approval.get(0).get("process_id"))) { + return approval.get(0).get("process_id").toString(); + } + return null; + } + + private boolean updateProcessId(Long id, String processId){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",id); + updateWrapper.set("process_id",processId); + return this.update(updateWrapper); + } + + @Override + public void removeApproval(Long approvalId) { + String processId = getProcessId(approvalId); + if (StrUtil.isNotEmpty(processId)) { + baseApprovalService.delete(processId); + } + this.removeById(approvalId); + } + + @Override + public ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest) { + String processId = getProcessId(submitRequest.getId()); + if (StrUtil.isEmpty(processId)) { + ReturnDTO submitRes = baseApprovalService.processSubmit(submitRequest.getFormId(), submitRequest.getId()); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(submitRes.getCode())) { + return submitRes; + } + ProcessInstance processInstance = (ProcessInstance) submitRes.getData(); + this.updateProcessId(submitRequest.getId(),processInstance.getProcessInstanceId()); + } else { + baseApprovalService.resubmit(processId); + } + return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); + } + + @Override + public ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest) { + ReturnDTO res = baseApprovalService.revoke(revokeRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(revokeRequest.getId(), ApprovalStatusEnum.CANCELED); + } + + @Override + public ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest) { + return baseApprovalService.agree(agreeRequest); + } + + @Override + public ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest) { + ReturnDTO res = baseApprovalService.reject(refuseRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(refuseRequest.getId(), ApprovalStatusEnum.FAILED); + } + + @Override + public void finishApproval(Long approvalId) { + updateApprovalStatus(approvalId,ApprovalStatusEnum.PASSED); + } + + private ReturnDTO updateApprovalStatus(Serializable approvalId, String approvalStatus) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",approvalId); + updateWrapper.set("approval_status",approvalStatus); + boolean updateRes = this.update(updateWrapper); + return updateRes ? ReturnUtil.success() : ReturnUtil.failed("请求失败"); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 85b5b90..f5868d7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -46,18 +46,24 @@ } @Override - public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); return this.baseMapper.selectList(dataScope, queryWrapper); } @Override - public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dataScopeDeptIds = dataScope.getDeptIds(); deptIds.addAll(dataScopeDeptIds); QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } queryWrapper.groupBy("equipment_name"); queryWrapper.select("equipment_name as 'equipmentName',count(*) as 'count'"); List> resMap = this.listMaps(queryWrapper); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java new file mode 100644 index 0000000..016e591 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java @@ -0,0 +1,158 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.model.CommonApproval; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计划表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@TableName("eqpt_plan") +public class Plan extends CommonApproval implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 计划编号 + */ + @ApiModelProperty("计划编号") + @TableField("plan_no") + private String planNo; + + /** + * 计划名称 + */ + @ApiModelProperty("计划名称") + @TableField("plan_name") + private String planName; + + /** + * 计划分类(原始/追加) + */ + @ApiModelProperty("计划分类(字典值,原始/追加)") + @TableField("plan_category") + private String planCategory; + + /** + * 计划类型(年/季/月) + */ + @ApiModelProperty("计划类型(字典值,年/季/月)") + @TableField("plan_type") + private String planType; + + /** + * 年份 + */ + @ApiModelProperty("年份") + @TableField("year") + private String year; + + /** + * 季度 + */ + @ApiModelProperty("季度") + @TableField("season") + private String season; + + /** + * 月份 + */ + @ApiModelProperty("月份") + @TableField("month") + private String month; + + /** + * 备注 + */ + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + @TableField("create_user_id") + private Long createUserId; + + /** + * 创建人姓名 + */ + @ApiModelProperty("创建人姓名") + @TableField("create_user_name") + private String createUserName; + + /** + * 创建单位id + */ + @ApiModelProperty("创建单位id") + @TableField("create_dept_id") + private Long createDeptId; + + /** + * 创建单位名称 + */ + @ApiModelProperty("创建单位名称") + @TableField("create_dept_name") + private String createDeptName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @TableField("update_time") + private Date updateTime; + + /** + * 流程实例id + */ + @ApiModelProperty("流程实例id") + @TableField("process_id") + private String processId; + + /** + * 审批状态 + */ + @ApiModelProperty("审批状态") + @TableField("approval_status") + private String approvalStatus; + + @ApiModelProperty("任务id") + @TableField(exist = false) + private String taskId; + + @ApiModelProperty("可选决策项") + @TableField(exist = false) + private Integer decisionItem; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java new file mode 100644 index 0000000..df8de12 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java @@ -0,0 +1,67 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计量与设备关联表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@TableName("eqpt_plan_equipment_relation") +public class PlanEquipmentRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId("id") + private Long id; + + /** + * 计量计划id + */ + @TableField("plan_id") + private Long planId; + + /** + * 设备id + */ + @TableField("equipment_id") + private Long equipmentId; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private Date updateTime; + + public PlanEquipmentRelation(Long planId, Long equipmentId) { + this.planId = planId; + this.equipmentId = equipmentId; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java new file mode 100644 index 0000000..ecec26d --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.plan.Plan; + +public interface ICommonApprovalService extends IService { + + void removeApproval(Long approvalId); + + ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest); + + ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest); + + ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest); + + ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest); + + void finishApproval(Long approvalId); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index d4caf2d..c1d4a64 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -22,10 +22,10 @@ String certificateValidStart, String certificateValidEnd); List list(String equipmentNo, String equipmentName,String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); EquipmentInfo detail(Long equipmentId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java new file mode 100644 index 0000000..1468ee3 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -0,0 +1,112 @@ +package com.casic.missiles.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; +import org.flowable.engine.runtime.ProcessInstance; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +@Service +public class CommonApprovalServiceImpl, T extends CommonApproval> extends ServiceImpl implements ICommonApprovalService { + + @Autowired + private IBaseApprovalService baseApprovalService; + + private String getProcessId(Long approvalId){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("id",approvalId); + queryWrapper.select("process_id"); + List> approval = this.listMaps(queryWrapper); + if (CollUtil.isNotEmpty(approval) && ObjectUtil.isNotEmpty(approval.get(0).get("process_id"))) { + return approval.get(0).get("process_id").toString(); + } + return null; + } + + private boolean updateProcessId(Long id, String processId){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",id); + updateWrapper.set("process_id",processId); + return this.update(updateWrapper); + } + + @Override + public void removeApproval(Long approvalId) { + String processId = getProcessId(approvalId); + if (StrUtil.isNotEmpty(processId)) { + baseApprovalService.delete(processId); + } + this.removeById(approvalId); + } + + @Override + public ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest) { + String processId = getProcessId(submitRequest.getId()); + if (StrUtil.isEmpty(processId)) { + ReturnDTO submitRes = baseApprovalService.processSubmit(submitRequest.getFormId(), submitRequest.getId()); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(submitRes.getCode())) { + return submitRes; + } + ProcessInstance processInstance = (ProcessInstance) submitRes.getData(); + this.updateProcessId(submitRequest.getId(),processInstance.getProcessInstanceId()); + } else { + baseApprovalService.resubmit(processId); + } + return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); + } + + @Override + public ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest) { + ReturnDTO res = baseApprovalService.revoke(revokeRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(revokeRequest.getId(), ApprovalStatusEnum.CANCELED); + } + + @Override + public ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest) { + return baseApprovalService.agree(agreeRequest); + } + + @Override + public ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest) { + ReturnDTO res = baseApprovalService.reject(refuseRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(refuseRequest.getId(), ApprovalStatusEnum.FAILED); + } + + @Override + public void finishApproval(Long approvalId) { + updateApprovalStatus(approvalId,ApprovalStatusEnum.PASSED); + } + + private ReturnDTO updateApprovalStatus(Serializable approvalId, String approvalStatus) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",approvalId); + updateWrapper.set("approval_status",approvalStatus); + boolean updateRes = this.update(updateWrapper); + return updateRes ? ReturnUtil.success() : ReturnUtil.failed("请求失败"); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 85b5b90..f5868d7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -46,18 +46,24 @@ } @Override - public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); return this.baseMapper.selectList(dataScope, queryWrapper); } @Override - public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dataScopeDeptIds = dataScope.getDeptIds(); deptIds.addAll(dataScopeDeptIds); QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } queryWrapper.groupBy("equipment_name"); queryWrapper.select("equipment_name as 'equipmentName',count(*) as 'count'"); List> resMap = this.listMaps(queryWrapper); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java new file mode 100644 index 0000000..257f6a8 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java @@ -0,0 +1,59 @@ +package com.casic.missiles.service.impl.plan; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.model.equipment.EquipmentAttachment; +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.casic.missiles.mapper.plan.PlanEquipmentRelationMapper; +import com.casic.missiles.service.plan.IPlanEquipmentRelationService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 受检设备-计量计量与设备关联表 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Service +public class PlanEquipmentRelationServiceImpl extends ServiceImpl implements IPlanEquipmentRelationService { + + @Override + public boolean saveByPlan(Long planId, List equipmentIds) { + boolean res; + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + res = this.remove(wrapper); + List relationList = new ArrayList<>(); + if(res && CollUtil.isNotEmpty(equipmentIds)){ + equipmentIds.forEach(i->relationList.add(new PlanEquipmentRelation(planId,i))); + res = this.saveBatch(relationList); + } + return res; + } + + @Override + public boolean removeByPlan(Long planId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + return this.remove(wrapper); + } + + @Override + public List selectEquipmentsByPlan(Long planId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + List relationList = this.list(wrapper); + if(CollUtil.isNotEmpty(relationList)){ + return relationList.stream().map(PlanEquipmentRelation::getEquipmentId).distinct().collect(Collectors.toList()); + }else { + return new ArrayList<>(); + } + } +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java new file mode 100644 index 0000000..016e591 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java @@ -0,0 +1,158 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.model.CommonApproval; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计划表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@TableName("eqpt_plan") +public class Plan extends CommonApproval implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 计划编号 + */ + @ApiModelProperty("计划编号") + @TableField("plan_no") + private String planNo; + + /** + * 计划名称 + */ + @ApiModelProperty("计划名称") + @TableField("plan_name") + private String planName; + + /** + * 计划分类(原始/追加) + */ + @ApiModelProperty("计划分类(字典值,原始/追加)") + @TableField("plan_category") + private String planCategory; + + /** + * 计划类型(年/季/月) + */ + @ApiModelProperty("计划类型(字典值,年/季/月)") + @TableField("plan_type") + private String planType; + + /** + * 年份 + */ + @ApiModelProperty("年份") + @TableField("year") + private String year; + + /** + * 季度 + */ + @ApiModelProperty("季度") + @TableField("season") + private String season; + + /** + * 月份 + */ + @ApiModelProperty("月份") + @TableField("month") + private String month; + + /** + * 备注 + */ + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + @TableField("create_user_id") + private Long createUserId; + + /** + * 创建人姓名 + */ + @ApiModelProperty("创建人姓名") + @TableField("create_user_name") + private String createUserName; + + /** + * 创建单位id + */ + @ApiModelProperty("创建单位id") + @TableField("create_dept_id") + private Long createDeptId; + + /** + * 创建单位名称 + */ + @ApiModelProperty("创建单位名称") + @TableField("create_dept_name") + private String createDeptName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @TableField("update_time") + private Date updateTime; + + /** + * 流程实例id + */ + @ApiModelProperty("流程实例id") + @TableField("process_id") + private String processId; + + /** + * 审批状态 + */ + @ApiModelProperty("审批状态") + @TableField("approval_status") + private String approvalStatus; + + @ApiModelProperty("任务id") + @TableField(exist = false) + private String taskId; + + @ApiModelProperty("可选决策项") + @TableField(exist = false) + private Integer decisionItem; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java new file mode 100644 index 0000000..df8de12 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java @@ -0,0 +1,67 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计量与设备关联表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@TableName("eqpt_plan_equipment_relation") +public class PlanEquipmentRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId("id") + private Long id; + + /** + * 计量计划id + */ + @TableField("plan_id") + private Long planId; + + /** + * 设备id + */ + @TableField("equipment_id") + private Long equipmentId; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private Date updateTime; + + public PlanEquipmentRelation(Long planId, Long equipmentId) { + this.planId = planId; + this.equipmentId = equipmentId; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java new file mode 100644 index 0000000..ecec26d --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.plan.Plan; + +public interface ICommonApprovalService extends IService { + + void removeApproval(Long approvalId); + + ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest); + + ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest); + + ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest); + + ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest); + + void finishApproval(Long approvalId); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index d4caf2d..c1d4a64 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -22,10 +22,10 @@ String certificateValidStart, String certificateValidEnd); List list(String equipmentNo, String equipmentName,String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); EquipmentInfo detail(Long equipmentId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java new file mode 100644 index 0000000..1468ee3 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -0,0 +1,112 @@ +package com.casic.missiles.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; +import org.flowable.engine.runtime.ProcessInstance; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +@Service +public class CommonApprovalServiceImpl, T extends CommonApproval> extends ServiceImpl implements ICommonApprovalService { + + @Autowired + private IBaseApprovalService baseApprovalService; + + private String getProcessId(Long approvalId){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("id",approvalId); + queryWrapper.select("process_id"); + List> approval = this.listMaps(queryWrapper); + if (CollUtil.isNotEmpty(approval) && ObjectUtil.isNotEmpty(approval.get(0).get("process_id"))) { + return approval.get(0).get("process_id").toString(); + } + return null; + } + + private boolean updateProcessId(Long id, String processId){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",id); + updateWrapper.set("process_id",processId); + return this.update(updateWrapper); + } + + @Override + public void removeApproval(Long approvalId) { + String processId = getProcessId(approvalId); + if (StrUtil.isNotEmpty(processId)) { + baseApprovalService.delete(processId); + } + this.removeById(approvalId); + } + + @Override + public ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest) { + String processId = getProcessId(submitRequest.getId()); + if (StrUtil.isEmpty(processId)) { + ReturnDTO submitRes = baseApprovalService.processSubmit(submitRequest.getFormId(), submitRequest.getId()); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(submitRes.getCode())) { + return submitRes; + } + ProcessInstance processInstance = (ProcessInstance) submitRes.getData(); + this.updateProcessId(submitRequest.getId(),processInstance.getProcessInstanceId()); + } else { + baseApprovalService.resubmit(processId); + } + return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); + } + + @Override + public ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest) { + ReturnDTO res = baseApprovalService.revoke(revokeRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(revokeRequest.getId(), ApprovalStatusEnum.CANCELED); + } + + @Override + public ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest) { + return baseApprovalService.agree(agreeRequest); + } + + @Override + public ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest) { + ReturnDTO res = baseApprovalService.reject(refuseRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(refuseRequest.getId(), ApprovalStatusEnum.FAILED); + } + + @Override + public void finishApproval(Long approvalId) { + updateApprovalStatus(approvalId,ApprovalStatusEnum.PASSED); + } + + private ReturnDTO updateApprovalStatus(Serializable approvalId, String approvalStatus) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",approvalId); + updateWrapper.set("approval_status",approvalStatus); + boolean updateRes = this.update(updateWrapper); + return updateRes ? ReturnUtil.success() : ReturnUtil.failed("请求失败"); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 85b5b90..f5868d7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -46,18 +46,24 @@ } @Override - public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); return this.baseMapper.selectList(dataScope, queryWrapper); } @Override - public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dataScopeDeptIds = dataScope.getDeptIds(); deptIds.addAll(dataScopeDeptIds); QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } queryWrapper.groupBy("equipment_name"); queryWrapper.select("equipment_name as 'equipmentName',count(*) as 'count'"); List> resMap = this.listMaps(queryWrapper); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java new file mode 100644 index 0000000..257f6a8 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java @@ -0,0 +1,59 @@ +package com.casic.missiles.service.impl.plan; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.model.equipment.EquipmentAttachment; +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.casic.missiles.mapper.plan.PlanEquipmentRelationMapper; +import com.casic.missiles.service.plan.IPlanEquipmentRelationService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 受检设备-计量计量与设备关联表 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Service +public class PlanEquipmentRelationServiceImpl extends ServiceImpl implements IPlanEquipmentRelationService { + + @Override + public boolean saveByPlan(Long planId, List equipmentIds) { + boolean res; + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + res = this.remove(wrapper); + List relationList = new ArrayList<>(); + if(res && CollUtil.isNotEmpty(equipmentIds)){ + equipmentIds.forEach(i->relationList.add(new PlanEquipmentRelation(planId,i))); + res = this.saveBatch(relationList); + } + return res; + } + + @Override + public boolean removeByPlan(Long planId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + return this.remove(wrapper); + } + + @Override + public List selectEquipmentsByPlan(Long planId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + List relationList = this.list(wrapper); + if(CollUtil.isNotEmpty(relationList)){ + return relationList.stream().map(PlanEquipmentRelation::getEquipmentId).distinct().collect(Collectors.toList()); + }else { + return new ArrayList<>(); + } + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java new file mode 100644 index 0000000..126a51c --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java @@ -0,0 +1,185 @@ +package com.casic.missiles.service.impl.plan; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.mapper.plan.PlanMapper; +import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.impl.CommonApprovalServiceImpl; +import com.casic.missiles.service.plan.IPlanEquipmentRelationService; +import com.casic.missiles.service.plan.IPlanService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.PrefixCodeEnum.*; +import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; +import static com.casic.missiles.enums.plan.PlanTypeEnum.*; + +/** + *

+ * 受检设备-计量计划表 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Service +public class PlanServiceImpl extends CommonApprovalServiceImpl implements IPlanService { + + @Autowired + private IPlanEquipmentRelationService relationService; + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IBaseApprovalService baseApprovalService; + + @Override + public Long saveOrUpdateApproval(PlanForm planForm) { + // 1. 生成统一编号 + if (StrUtil.isEmpty(planForm.getPlanNo())) { + Long maxNo = this.baseMapper.selectMaxNo(planForm.getPlanType()); + String prefix = getPrefixByType(planForm.getPlanType()); + planForm.setPlanNo(NumberGeneratorUtil.getContactNo(prefix, maxNo)); + } + // 2. 设置申请状态:草稿箱 + planForm.setApprovalStatus(ApprovalStatusEnum.DRAFT); + // 3. 保存扩展表 + this.saveOrUpdate(planForm); + if (CollUtil.isNotEmpty(planForm.getEquipmentIds())) { + relationService.saveByPlan(planForm.getId(), planForm.getEquipmentIds()); + } + // 4. 返回申请记录id + return planForm.getId(); + } + + private String getPrefixByType(String planType){ + switch (planType){ + case PLAN_TYPE_YEAR: + return PLAN_YEAR_PREFIX; + case PLAN_TYPE_SEASON: + return PLAN_SEASON_PREFIX; + case PLAN_TYPE_MONTH: + return PLAN_MONTH_PREFIX; + default: + return null; + } + } + + @Override + @Transactional + public void removeApproval(Long planId) { + super.removeApproval(planId); + relationService.removeByPlan(planId); + } + + @Override + public PlanForm detail(Long planId) { + PlanForm planForm = (PlanForm) this.getById(planId); + planForm.setEquipmentIds(relationService.selectEquipmentsByPlan(planId)); + return planForm; + } + + @Override + public Page listPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + if(StrUtil.isNotEmpty(approvalStatus)){ + queryWrapper.eq("approval_status",approvalStatus); + } + page = this.page(page,queryWrapper); + return page; + } + + @Override + public Page toApprovalListPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return page; + } + + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + page = this.page(page, queryWrapper); + for (Plan approval : page.getRecords()) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + } + return page; + } + + @Override + public Page approvedListPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return page; + } + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + queryWrapper.in("id", approvedIds); + return this.page(page, queryWrapper); + } + + /** + * todo datascope ? + */ + @Override + public Page allPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); + page = this.page(page,queryWrapper); + return page; + } + + private QueryWrapper commonQuery(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(StrUtil.isNotEmpty(planNo)){ + queryWrapper.like("plan_no",planNo); + } + if(StrUtil.isNotEmpty(planName)){ + queryWrapper.like("plan_name",planName); + } + if(StrUtil.isNotEmpty(planCategory)){ + queryWrapper.eq("plan_category",planCategory); + } + if(StrUtil.isNotEmpty(planType)){ + queryWrapper.eq("plan_type",planType); + } + if(StrUtil.isNotEmpty(createTimeStart)){ + queryWrapper.ge("create_time",createTimeStart); + } + if(StrUtil.isNotEmpty(createTimeEnd)){ + queryWrapper.le("create_time",createTimeEnd); + } + if(StrUtil.isNotEmpty(createDeptName)){ + queryWrapper.like("create_dept_name",createDeptName); + } + return queryWrapper; + } +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java new file mode 100644 index 0000000..016e591 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java @@ -0,0 +1,158 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.model.CommonApproval; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计划表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@TableName("eqpt_plan") +public class Plan extends CommonApproval implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 计划编号 + */ + @ApiModelProperty("计划编号") + @TableField("plan_no") + private String planNo; + + /** + * 计划名称 + */ + @ApiModelProperty("计划名称") + @TableField("plan_name") + private String planName; + + /** + * 计划分类(原始/追加) + */ + @ApiModelProperty("计划分类(字典值,原始/追加)") + @TableField("plan_category") + private String planCategory; + + /** + * 计划类型(年/季/月) + */ + @ApiModelProperty("计划类型(字典值,年/季/月)") + @TableField("plan_type") + private String planType; + + /** + * 年份 + */ + @ApiModelProperty("年份") + @TableField("year") + private String year; + + /** + * 季度 + */ + @ApiModelProperty("季度") + @TableField("season") + private String season; + + /** + * 月份 + */ + @ApiModelProperty("月份") + @TableField("month") + private String month; + + /** + * 备注 + */ + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + @TableField("create_user_id") + private Long createUserId; + + /** + * 创建人姓名 + */ + @ApiModelProperty("创建人姓名") + @TableField("create_user_name") + private String createUserName; + + /** + * 创建单位id + */ + @ApiModelProperty("创建单位id") + @TableField("create_dept_id") + private Long createDeptId; + + /** + * 创建单位名称 + */ + @ApiModelProperty("创建单位名称") + @TableField("create_dept_name") + private String createDeptName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @TableField("update_time") + private Date updateTime; + + /** + * 流程实例id + */ + @ApiModelProperty("流程实例id") + @TableField("process_id") + private String processId; + + /** + * 审批状态 + */ + @ApiModelProperty("审批状态") + @TableField("approval_status") + private String approvalStatus; + + @ApiModelProperty("任务id") + @TableField(exist = false) + private String taskId; + + @ApiModelProperty("可选决策项") + @TableField(exist = false) + private Integer decisionItem; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java new file mode 100644 index 0000000..df8de12 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java @@ -0,0 +1,67 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计量与设备关联表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@TableName("eqpt_plan_equipment_relation") +public class PlanEquipmentRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId("id") + private Long id; + + /** + * 计量计划id + */ + @TableField("plan_id") + private Long planId; + + /** + * 设备id + */ + @TableField("equipment_id") + private Long equipmentId; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private Date updateTime; + + public PlanEquipmentRelation(Long planId, Long equipmentId) { + this.planId = planId; + this.equipmentId = equipmentId; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java new file mode 100644 index 0000000..ecec26d --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.plan.Plan; + +public interface ICommonApprovalService extends IService { + + void removeApproval(Long approvalId); + + ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest); + + ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest); + + ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest); + + ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest); + + void finishApproval(Long approvalId); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index d4caf2d..c1d4a64 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -22,10 +22,10 @@ String certificateValidStart, String certificateValidEnd); List list(String equipmentNo, String equipmentName,String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); EquipmentInfo detail(Long equipmentId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java new file mode 100644 index 0000000..1468ee3 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -0,0 +1,112 @@ +package com.casic.missiles.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; +import org.flowable.engine.runtime.ProcessInstance; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +@Service +public class CommonApprovalServiceImpl, T extends CommonApproval> extends ServiceImpl implements ICommonApprovalService { + + @Autowired + private IBaseApprovalService baseApprovalService; + + private String getProcessId(Long approvalId){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("id",approvalId); + queryWrapper.select("process_id"); + List> approval = this.listMaps(queryWrapper); + if (CollUtil.isNotEmpty(approval) && ObjectUtil.isNotEmpty(approval.get(0).get("process_id"))) { + return approval.get(0).get("process_id").toString(); + } + return null; + } + + private boolean updateProcessId(Long id, String processId){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",id); + updateWrapper.set("process_id",processId); + return this.update(updateWrapper); + } + + @Override + public void removeApproval(Long approvalId) { + String processId = getProcessId(approvalId); + if (StrUtil.isNotEmpty(processId)) { + baseApprovalService.delete(processId); + } + this.removeById(approvalId); + } + + @Override + public ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest) { + String processId = getProcessId(submitRequest.getId()); + if (StrUtil.isEmpty(processId)) { + ReturnDTO submitRes = baseApprovalService.processSubmit(submitRequest.getFormId(), submitRequest.getId()); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(submitRes.getCode())) { + return submitRes; + } + ProcessInstance processInstance = (ProcessInstance) submitRes.getData(); + this.updateProcessId(submitRequest.getId(),processInstance.getProcessInstanceId()); + } else { + baseApprovalService.resubmit(processId); + } + return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); + } + + @Override + public ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest) { + ReturnDTO res = baseApprovalService.revoke(revokeRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(revokeRequest.getId(), ApprovalStatusEnum.CANCELED); + } + + @Override + public ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest) { + return baseApprovalService.agree(agreeRequest); + } + + @Override + public ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest) { + ReturnDTO res = baseApprovalService.reject(refuseRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(refuseRequest.getId(), ApprovalStatusEnum.FAILED); + } + + @Override + public void finishApproval(Long approvalId) { + updateApprovalStatus(approvalId,ApprovalStatusEnum.PASSED); + } + + private ReturnDTO updateApprovalStatus(Serializable approvalId, String approvalStatus) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",approvalId); + updateWrapper.set("approval_status",approvalStatus); + boolean updateRes = this.update(updateWrapper); + return updateRes ? ReturnUtil.success() : ReturnUtil.failed("请求失败"); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 85b5b90..f5868d7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -46,18 +46,24 @@ } @Override - public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); return this.baseMapper.selectList(dataScope, queryWrapper); } @Override - public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dataScopeDeptIds = dataScope.getDeptIds(); deptIds.addAll(dataScopeDeptIds); QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } queryWrapper.groupBy("equipment_name"); queryWrapper.select("equipment_name as 'equipmentName',count(*) as 'count'"); List> resMap = this.listMaps(queryWrapper); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java new file mode 100644 index 0000000..257f6a8 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java @@ -0,0 +1,59 @@ +package com.casic.missiles.service.impl.plan; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.model.equipment.EquipmentAttachment; +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.casic.missiles.mapper.plan.PlanEquipmentRelationMapper; +import com.casic.missiles.service.plan.IPlanEquipmentRelationService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 受检设备-计量计量与设备关联表 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Service +public class PlanEquipmentRelationServiceImpl extends ServiceImpl implements IPlanEquipmentRelationService { + + @Override + public boolean saveByPlan(Long planId, List equipmentIds) { + boolean res; + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + res = this.remove(wrapper); + List relationList = new ArrayList<>(); + if(res && CollUtil.isNotEmpty(equipmentIds)){ + equipmentIds.forEach(i->relationList.add(new PlanEquipmentRelation(planId,i))); + res = this.saveBatch(relationList); + } + return res; + } + + @Override + public boolean removeByPlan(Long planId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + return this.remove(wrapper); + } + + @Override + public List selectEquipmentsByPlan(Long planId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + List relationList = this.list(wrapper); + if(CollUtil.isNotEmpty(relationList)){ + return relationList.stream().map(PlanEquipmentRelation::getEquipmentId).distinct().collect(Collectors.toList()); + }else { + return new ArrayList<>(); + } + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java new file mode 100644 index 0000000..126a51c --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java @@ -0,0 +1,185 @@ +package com.casic.missiles.service.impl.plan; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.mapper.plan.PlanMapper; +import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.impl.CommonApprovalServiceImpl; +import com.casic.missiles.service.plan.IPlanEquipmentRelationService; +import com.casic.missiles.service.plan.IPlanService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.PrefixCodeEnum.*; +import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; +import static com.casic.missiles.enums.plan.PlanTypeEnum.*; + +/** + *

+ * 受检设备-计量计划表 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Service +public class PlanServiceImpl extends CommonApprovalServiceImpl implements IPlanService { + + @Autowired + private IPlanEquipmentRelationService relationService; + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IBaseApprovalService baseApprovalService; + + @Override + public Long saveOrUpdateApproval(PlanForm planForm) { + // 1. 生成统一编号 + if (StrUtil.isEmpty(planForm.getPlanNo())) { + Long maxNo = this.baseMapper.selectMaxNo(planForm.getPlanType()); + String prefix = getPrefixByType(planForm.getPlanType()); + planForm.setPlanNo(NumberGeneratorUtil.getContactNo(prefix, maxNo)); + } + // 2. 设置申请状态:草稿箱 + planForm.setApprovalStatus(ApprovalStatusEnum.DRAFT); + // 3. 保存扩展表 + this.saveOrUpdate(planForm); + if (CollUtil.isNotEmpty(planForm.getEquipmentIds())) { + relationService.saveByPlan(planForm.getId(), planForm.getEquipmentIds()); + } + // 4. 返回申请记录id + return planForm.getId(); + } + + private String getPrefixByType(String planType){ + switch (planType){ + case PLAN_TYPE_YEAR: + return PLAN_YEAR_PREFIX; + case PLAN_TYPE_SEASON: + return PLAN_SEASON_PREFIX; + case PLAN_TYPE_MONTH: + return PLAN_MONTH_PREFIX; + default: + return null; + } + } + + @Override + @Transactional + public void removeApproval(Long planId) { + super.removeApproval(planId); + relationService.removeByPlan(planId); + } + + @Override + public PlanForm detail(Long planId) { + PlanForm planForm = (PlanForm) this.getById(planId); + planForm.setEquipmentIds(relationService.selectEquipmentsByPlan(planId)); + return planForm; + } + + @Override + public Page listPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + if(StrUtil.isNotEmpty(approvalStatus)){ + queryWrapper.eq("approval_status",approvalStatus); + } + page = this.page(page,queryWrapper); + return page; + } + + @Override + public Page toApprovalListPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return page; + } + + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + page = this.page(page, queryWrapper); + for (Plan approval : page.getRecords()) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + } + return page; + } + + @Override + public Page approvedListPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return page; + } + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + queryWrapper.in("id", approvedIds); + return this.page(page, queryWrapper); + } + + /** + * todo datascope ? + */ + @Override + public Page allPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); + page = this.page(page,queryWrapper); + return page; + } + + private QueryWrapper commonQuery(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(StrUtil.isNotEmpty(planNo)){ + queryWrapper.like("plan_no",planNo); + } + if(StrUtil.isNotEmpty(planName)){ + queryWrapper.like("plan_name",planName); + } + if(StrUtil.isNotEmpty(planCategory)){ + queryWrapper.eq("plan_category",planCategory); + } + if(StrUtil.isNotEmpty(planType)){ + queryWrapper.eq("plan_type",planType); + } + if(StrUtil.isNotEmpty(createTimeStart)){ + queryWrapper.ge("create_time",createTimeStart); + } + if(StrUtil.isNotEmpty(createTimeEnd)){ + queryWrapper.le("create_time",createTimeEnd); + } + if(StrUtil.isNotEmpty(createDeptName)){ + queryWrapper.like("create_dept_name",createDeptName); + } + return queryWrapper; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index 7e81c9c..71f2915 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -139,6 +139,7 @@ @Override public void finishApproval(Long approvalId) { EquipmentStatusApproval approval = this.getById(approvalId); + updateApprovalStatus(approval,ApprovalStatusEnum.PASSED); switch (approval.getApprovalType()) { case SEAL: equipmentInfoService.updateEquipmentStatus(approval.getEquipmentId(), EquipmentStatusTypeEnum.SEAL); @@ -231,6 +232,7 @@ @Override public Page allPage(Page page, String approvalNo, String approvalType, String equipmentNo, String equipmentName, String formId) { QueryWrapper queryWrapper = commonQuery(approvalNo, approvalType, equipmentNo, equipmentName); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List list = this.baseMapper.listScopePage(dataScope, page, queryWrapper); page.setRecords(list); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java new file mode 100644 index 0000000..016e591 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java @@ -0,0 +1,158 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.model.CommonApproval; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计划表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@TableName("eqpt_plan") +public class Plan extends CommonApproval implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 计划编号 + */ + @ApiModelProperty("计划编号") + @TableField("plan_no") + private String planNo; + + /** + * 计划名称 + */ + @ApiModelProperty("计划名称") + @TableField("plan_name") + private String planName; + + /** + * 计划分类(原始/追加) + */ + @ApiModelProperty("计划分类(字典值,原始/追加)") + @TableField("plan_category") + private String planCategory; + + /** + * 计划类型(年/季/月) + */ + @ApiModelProperty("计划类型(字典值,年/季/月)") + @TableField("plan_type") + private String planType; + + /** + * 年份 + */ + @ApiModelProperty("年份") + @TableField("year") + private String year; + + /** + * 季度 + */ + @ApiModelProperty("季度") + @TableField("season") + private String season; + + /** + * 月份 + */ + @ApiModelProperty("月份") + @TableField("month") + private String month; + + /** + * 备注 + */ + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + @TableField("create_user_id") + private Long createUserId; + + /** + * 创建人姓名 + */ + @ApiModelProperty("创建人姓名") + @TableField("create_user_name") + private String createUserName; + + /** + * 创建单位id + */ + @ApiModelProperty("创建单位id") + @TableField("create_dept_id") + private Long createDeptId; + + /** + * 创建单位名称 + */ + @ApiModelProperty("创建单位名称") + @TableField("create_dept_name") + private String createDeptName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @TableField("update_time") + private Date updateTime; + + /** + * 流程实例id + */ + @ApiModelProperty("流程实例id") + @TableField("process_id") + private String processId; + + /** + * 审批状态 + */ + @ApiModelProperty("审批状态") + @TableField("approval_status") + private String approvalStatus; + + @ApiModelProperty("任务id") + @TableField(exist = false) + private String taskId; + + @ApiModelProperty("可选决策项") + @TableField(exist = false) + private Integer decisionItem; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java new file mode 100644 index 0000000..df8de12 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java @@ -0,0 +1,67 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计量与设备关联表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@TableName("eqpt_plan_equipment_relation") +public class PlanEquipmentRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId("id") + private Long id; + + /** + * 计量计划id + */ + @TableField("plan_id") + private Long planId; + + /** + * 设备id + */ + @TableField("equipment_id") + private Long equipmentId; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private Date updateTime; + + public PlanEquipmentRelation(Long planId, Long equipmentId) { + this.planId = planId; + this.equipmentId = equipmentId; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java new file mode 100644 index 0000000..ecec26d --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.plan.Plan; + +public interface ICommonApprovalService extends IService { + + void removeApproval(Long approvalId); + + ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest); + + ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest); + + ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest); + + ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest); + + void finishApproval(Long approvalId); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index d4caf2d..c1d4a64 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -22,10 +22,10 @@ String certificateValidStart, String certificateValidEnd); List list(String equipmentNo, String equipmentName,String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); EquipmentInfo detail(Long equipmentId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java new file mode 100644 index 0000000..1468ee3 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -0,0 +1,112 @@ +package com.casic.missiles.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; +import org.flowable.engine.runtime.ProcessInstance; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +@Service +public class CommonApprovalServiceImpl, T extends CommonApproval> extends ServiceImpl implements ICommonApprovalService { + + @Autowired + private IBaseApprovalService baseApprovalService; + + private String getProcessId(Long approvalId){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("id",approvalId); + queryWrapper.select("process_id"); + List> approval = this.listMaps(queryWrapper); + if (CollUtil.isNotEmpty(approval) && ObjectUtil.isNotEmpty(approval.get(0).get("process_id"))) { + return approval.get(0).get("process_id").toString(); + } + return null; + } + + private boolean updateProcessId(Long id, String processId){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",id); + updateWrapper.set("process_id",processId); + return this.update(updateWrapper); + } + + @Override + public void removeApproval(Long approvalId) { + String processId = getProcessId(approvalId); + if (StrUtil.isNotEmpty(processId)) { + baseApprovalService.delete(processId); + } + this.removeById(approvalId); + } + + @Override + public ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest) { + String processId = getProcessId(submitRequest.getId()); + if (StrUtil.isEmpty(processId)) { + ReturnDTO submitRes = baseApprovalService.processSubmit(submitRequest.getFormId(), submitRequest.getId()); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(submitRes.getCode())) { + return submitRes; + } + ProcessInstance processInstance = (ProcessInstance) submitRes.getData(); + this.updateProcessId(submitRequest.getId(),processInstance.getProcessInstanceId()); + } else { + baseApprovalService.resubmit(processId); + } + return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); + } + + @Override + public ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest) { + ReturnDTO res = baseApprovalService.revoke(revokeRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(revokeRequest.getId(), ApprovalStatusEnum.CANCELED); + } + + @Override + public ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest) { + return baseApprovalService.agree(agreeRequest); + } + + @Override + public ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest) { + ReturnDTO res = baseApprovalService.reject(refuseRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(refuseRequest.getId(), ApprovalStatusEnum.FAILED); + } + + @Override + public void finishApproval(Long approvalId) { + updateApprovalStatus(approvalId,ApprovalStatusEnum.PASSED); + } + + private ReturnDTO updateApprovalStatus(Serializable approvalId, String approvalStatus) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",approvalId); + updateWrapper.set("approval_status",approvalStatus); + boolean updateRes = this.update(updateWrapper); + return updateRes ? ReturnUtil.success() : ReturnUtil.failed("请求失败"); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 85b5b90..f5868d7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -46,18 +46,24 @@ } @Override - public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); return this.baseMapper.selectList(dataScope, queryWrapper); } @Override - public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dataScopeDeptIds = dataScope.getDeptIds(); deptIds.addAll(dataScopeDeptIds); QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } queryWrapper.groupBy("equipment_name"); queryWrapper.select("equipment_name as 'equipmentName',count(*) as 'count'"); List> resMap = this.listMaps(queryWrapper); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java new file mode 100644 index 0000000..257f6a8 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java @@ -0,0 +1,59 @@ +package com.casic.missiles.service.impl.plan; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.model.equipment.EquipmentAttachment; +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.casic.missiles.mapper.plan.PlanEquipmentRelationMapper; +import com.casic.missiles.service.plan.IPlanEquipmentRelationService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 受检设备-计量计量与设备关联表 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Service +public class PlanEquipmentRelationServiceImpl extends ServiceImpl implements IPlanEquipmentRelationService { + + @Override + public boolean saveByPlan(Long planId, List equipmentIds) { + boolean res; + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + res = this.remove(wrapper); + List relationList = new ArrayList<>(); + if(res && CollUtil.isNotEmpty(equipmentIds)){ + equipmentIds.forEach(i->relationList.add(new PlanEquipmentRelation(planId,i))); + res = this.saveBatch(relationList); + } + return res; + } + + @Override + public boolean removeByPlan(Long planId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + return this.remove(wrapper); + } + + @Override + public List selectEquipmentsByPlan(Long planId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + List relationList = this.list(wrapper); + if(CollUtil.isNotEmpty(relationList)){ + return relationList.stream().map(PlanEquipmentRelation::getEquipmentId).distinct().collect(Collectors.toList()); + }else { + return new ArrayList<>(); + } + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java new file mode 100644 index 0000000..126a51c --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java @@ -0,0 +1,185 @@ +package com.casic.missiles.service.impl.plan; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.mapper.plan.PlanMapper; +import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.impl.CommonApprovalServiceImpl; +import com.casic.missiles.service.plan.IPlanEquipmentRelationService; +import com.casic.missiles.service.plan.IPlanService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.PrefixCodeEnum.*; +import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; +import static com.casic.missiles.enums.plan.PlanTypeEnum.*; + +/** + *

+ * 受检设备-计量计划表 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Service +public class PlanServiceImpl extends CommonApprovalServiceImpl implements IPlanService { + + @Autowired + private IPlanEquipmentRelationService relationService; + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IBaseApprovalService baseApprovalService; + + @Override + public Long saveOrUpdateApproval(PlanForm planForm) { + // 1. 生成统一编号 + if (StrUtil.isEmpty(planForm.getPlanNo())) { + Long maxNo = this.baseMapper.selectMaxNo(planForm.getPlanType()); + String prefix = getPrefixByType(planForm.getPlanType()); + planForm.setPlanNo(NumberGeneratorUtil.getContactNo(prefix, maxNo)); + } + // 2. 设置申请状态:草稿箱 + planForm.setApprovalStatus(ApprovalStatusEnum.DRAFT); + // 3. 保存扩展表 + this.saveOrUpdate(planForm); + if (CollUtil.isNotEmpty(planForm.getEquipmentIds())) { + relationService.saveByPlan(planForm.getId(), planForm.getEquipmentIds()); + } + // 4. 返回申请记录id + return planForm.getId(); + } + + private String getPrefixByType(String planType){ + switch (planType){ + case PLAN_TYPE_YEAR: + return PLAN_YEAR_PREFIX; + case PLAN_TYPE_SEASON: + return PLAN_SEASON_PREFIX; + case PLAN_TYPE_MONTH: + return PLAN_MONTH_PREFIX; + default: + return null; + } + } + + @Override + @Transactional + public void removeApproval(Long planId) { + super.removeApproval(planId); + relationService.removeByPlan(planId); + } + + @Override + public PlanForm detail(Long planId) { + PlanForm planForm = (PlanForm) this.getById(planId); + planForm.setEquipmentIds(relationService.selectEquipmentsByPlan(planId)); + return planForm; + } + + @Override + public Page listPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + if(StrUtil.isNotEmpty(approvalStatus)){ + queryWrapper.eq("approval_status",approvalStatus); + } + page = this.page(page,queryWrapper); + return page; + } + + @Override + public Page toApprovalListPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return page; + } + + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + page = this.page(page, queryWrapper); + for (Plan approval : page.getRecords()) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + } + return page; + } + + @Override + public Page approvedListPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return page; + } + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + queryWrapper.in("id", approvedIds); + return this.page(page, queryWrapper); + } + + /** + * todo datascope ? + */ + @Override + public Page allPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); + page = this.page(page,queryWrapper); + return page; + } + + private QueryWrapper commonQuery(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(StrUtil.isNotEmpty(planNo)){ + queryWrapper.like("plan_no",planNo); + } + if(StrUtil.isNotEmpty(planName)){ + queryWrapper.like("plan_name",planName); + } + if(StrUtil.isNotEmpty(planCategory)){ + queryWrapper.eq("plan_category",planCategory); + } + if(StrUtil.isNotEmpty(planType)){ + queryWrapper.eq("plan_type",planType); + } + if(StrUtil.isNotEmpty(createTimeStart)){ + queryWrapper.ge("create_time",createTimeStart); + } + if(StrUtil.isNotEmpty(createTimeEnd)){ + queryWrapper.le("create_time",createTimeEnd); + } + if(StrUtil.isNotEmpty(createDeptName)){ + queryWrapper.like("create_dept_name",createDeptName); + } + return queryWrapper; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index 7e81c9c..71f2915 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -139,6 +139,7 @@ @Override public void finishApproval(Long approvalId) { EquipmentStatusApproval approval = this.getById(approvalId); + updateApprovalStatus(approval,ApprovalStatusEnum.PASSED); switch (approval.getApprovalType()) { case SEAL: equipmentInfoService.updateEquipmentStatus(approval.getEquipmentId(), EquipmentStatusTypeEnum.SEAL); @@ -231,6 +232,7 @@ @Override public Page allPage(Page page, String approvalNo, String approvalType, String equipmentNo, String equipmentName, String formId) { QueryWrapper queryWrapper = commonQuery(approvalNo, approvalType, equipmentNo, equipmentName); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List list = this.baseMapper.listScopePage(dataScope, page, queryWrapper); page.setRecords(list); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/plan/IPlanEquipmentRelationService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/plan/IPlanEquipmentRelationService.java new file mode 100644 index 0000000..db65d0b --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/plan/IPlanEquipmentRelationService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.service.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 受检设备-计量计量与设备关联表 服务类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface IPlanEquipmentRelationService extends IService { + + boolean saveByPlan(Long planId, List equipmentIds); + + boolean removeByPlan(Long planId); + + List selectEquipmentsByPlan(Long planId); + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index 44dcd67..da6bf9e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -4,8 +4,13 @@ public interface PrefixCodeEnum { + /** + * 设备台账:受检设备 + */ String EQUIPMENT_PREFIX = "sjsb"; - + /** + * 设备台账:特种设备 + */ String EQUIPMENT_SPECIAL_PREFIX = "tzsb"; /** @@ -29,6 +34,19 @@ */ String EQUIPMENT_STATUS_DELAY_PREFIX = "sbyysq"; + /** + * 计量计划:年度计划 + */ + String PLAN_YEAR_PREFIX = "ndjh"; + /** + * 计量计划:季度计划 + */ + String PLAN_SEASON_PREFIX = "jdjh"; + /** + * 计量计划:月度计划 + */ + String PLAN_MONTH_PREFIX = "ydjh"; + /*************系统设置模块**************/ String NOTICE_PREFIX = "tzgg"; String SIGN_PREFIX = "qmqz"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java new file mode 100644 index 0000000..62820d4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/plan/PlanTypeEnum.java @@ -0,0 +1,10 @@ +package com.casic.missiles.enums.plan; + +public interface PlanTypeEnum { + + String PLAN_TYPE_YEAR = "1"; + + String PLAN_TYPE_SEASON = "2"; + + String PLAN_TYPE_MONTH = "3"; +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java index cfc2eae..27ed6da 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/AutoCodeGenerator.java @@ -65,12 +65,13 @@ .packageConfig(builder -> builder // 指定父包名 .parent("com.casic.missiles") - .moduleName("status") .entity("model") .service("service") .serviceImpl("service.impl") .mapper("mapper") - .controller("controller")) + .controller("controller") + .joinPackage("plan") + ) // 模版配置 // .templateConfig(builder -> builder // .entity("/templates/entity.java") diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java new file mode 100644 index 0000000..2332baf --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanEquipmentRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-计量计量与设备关联表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanEquipmentRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java new file mode 100644 index 0000000..26dc38c --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/plan/PlanMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.mapper.plan; + +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 受检设备-计量计划表 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface PlanMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(equipment_no, 12)), 0) from eqpt_plan where plan_type = #{planType}") + Long selectMaxNo(String planType); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java index 5d76181..8e0b176 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/status/EquipmentStatusApprovalMapper.java @@ -26,7 +26,7 @@ List listPage(@Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); - List listScopePage(@Param("datascope") DataScope dateScope, + List listScopePage(@Param("dataScope") DataScope dateScope, @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml new file mode 100644 index 0000000..905bd1f --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanEquipmentRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, plan_id, equipment_id, create_time, update_time + + + diff --git a/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml new file mode 100644 index 0000000..cd91f0e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/plan/PlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, plan_no, plan_name, plan_category, plan_type, year, season, month, remark, create_user_id, create_user_name, create_dept_id, create_dept_name, create_time, update_time, process_id, approval_status + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 75903e7..20b03c8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -35,73 +35,77 @@ private final IEquipmentInfoService equipmentInfoService; @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query") }) @ApiOperation("设备分页列表") @GetMapping("/info/listPage") @ResponseBody public ReturnDTO> listPage(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd) { Page page = PageFactory.defaultPage(); page = equipmentInfoService.listPage(page, equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); return ReturnUtil.success(super.packForBT(page)); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备列表") @GetMapping("/info/list") @ResponseBody public ReturnDTO> list(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.list(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentNo", value = "统一编号",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentName", value = "设备名称",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "deptIds", value = "使用部门",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usePosition", value = "使用岗位",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "usageStatus", value = "使用状态",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间",dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间",dataType = "String", paramType = "query") + @ApiImplicitParam(name = "equipmentNo", value = "统一编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentName", value = "设备名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "equipmentType", value = "设备类型(1受检设备;2特种设备)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "deptIds", value = "使用部门", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usePosition", value = "使用岗位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "usageStatus", value = "使用状态", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidStart", value = "证书有效期开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "certificateValidEnd", value = "证书有效期结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "ids", value = "id列表", dataType = "list", paramType = "query") }) @ApiOperation("设备聚合列表") @GetMapping("/info/groupByName") @ResponseBody public ReturnDTO> groupByName(String equipmentNo, String equipmentName, String equipmentType, - @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd) { - List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + @RequestParam(required = false) List deptIds, String usePosition, String usageStatus, + String certificateValidStart, String certificateValidEnd, + @RequestParam(required = false) List ids) { + List list = equipmentInfoService.groupByName(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd, ids); return ReturnUtil.success(list); } @ApiImplicitParams({ - @ApiImplicitParam(name = "equipmentId", value = "设备id",dataType = "Long",example = "0", paramType = "query"), + @ApiImplicitParam(name = "equipmentId", value = "设备id", dataType = "Long", example = "0", paramType = "query"), }) @ApiOperation("设备详情-基本信息") @GetMapping("/info/detail") @ResponseBody - public ReturnDTO detail(Long equipmentId){ + public ReturnDTO detail(Long equipmentId) { return ReturnUtil.success(equipmentInfoService.detail(equipmentId)); } } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java new file mode 100644 index 0000000..faea9c6 --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/PlanController.java @@ -0,0 +1,167 @@ +package com.casic.missiles.controller.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.service.plan.IPlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/plan") +@RequiredArgsConstructor +@Slf4j +@Api(tags = "计量计划模块") +public class PlanController extends BaseController { + + private IPlanService planService; + + @ApiOperation("保存、编辑审批") + @PostMapping("/approval/saveOrUpdate") + @ResponseBody + public ReturnDTO saveApproval(@RequestBody PlanForm approvalForm) { + Long approvalId = planService.saveOrUpdateApproval(approvalForm); + return ReturnUtil.success(approvalId); + } + + @ApiOperation("删除审批") + @PostMapping("/approval/delete") + @ResponseBody + public ReturnDTO deleteApproval(Long id) { + planService.removeApproval(id); + return ReturnUtil.success(); + } + + @ApiOperation("提交审批") + @PostMapping("/approval/submit") + @ResponseBody + public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { + return planService.submitApproval(submitRequest); + } + + @ApiOperation("取消审批") + @PostMapping("/approval/cancel") + @ResponseBody + public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { + return planService.cancelApproval(revokeRequest); + } + + @ApiOperation("同意审批") + @PostMapping("/approval/agree") + @ResponseBody + public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { + return planService.agreeApproval(agreeRequest); + } + + @ApiOperation("拒绝审批") + @PostMapping("/approval/refuse") + @ResponseBody + public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { + return planService.refuseApproval(refuseRequest); + } + + @ApiOperation("查看审批-基本信息") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO approvalDetail(Long id) { + PlanForm info = planService.detail(id); + return ReturnUtil.success(info); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "approvalStatus", value = "申请状态", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") + @GetMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> listPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + Page page = PageFactory.defaultPage(); + page = planService.listPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, approvalStatus); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-待审批") + @GetMapping("/approval/toApprovalListPage") + @ResponseBody + public ReturnDTO> toApprovalListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.toApprovalListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "formId", value = "流程formId", dataType = "String", paramType = "query") + }) + @ApiOperation("审批列表-已审批") + @GetMapping("/approval/approvedListPage") + @ResponseBody + public ReturnDTO> approvedListPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + Page page = PageFactory.defaultPage(); + page = planService.approvedListPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName, formId); + return ReturnUtil.success(super.packForBT(page)); + } + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "planNo", value = "计划编号", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planName", value = "计划名称", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planCategory", value = "计划分类(原始/追加)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "planType", value = "计划类型(年/季/月)", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeStart", value = "创建开始时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createTimeEnd", value = "创建结束时间", dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "createDeptName", value = "创建单位", dataType = "String", paramType = "query") + }) + @ApiOperation("全部列表") + @GetMapping("/allPage") + @ResponseBody + public ReturnDTO> allPage(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + Page page = PageFactory.defaultPage(); + page = planService.allPage(page, planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + return ReturnUtil.success(super.packForBT(page)); + } +} diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index c069d25..4a951f2 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://111.198.10.15:11336/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: Casic203 diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index afc69c9..de847ed 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -119,7 +119,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_equipment_status_approval + table-name: eqpt_inspection_approval,eqpt_inspection_equipment_relation prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java new file mode 100644 index 0000000..d02159a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/plan/PlanForm.java @@ -0,0 +1,18 @@ +package com.casic.missiles.dto.plan; + +import com.casic.missiles.model.plan.Plan; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter + +public class PlanForm extends Plan { + + @ApiModelProperty("关联设备id") + private List equipmentIds; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java new file mode 100644 index 0000000..9427bdd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -0,0 +1,26 @@ +package com.casic.missiles.model; + +import lombok.Data; + +public class CommonApproval { + + private String processId; + + private String approvalStatus; + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public String getApprovalStatus() { + return approvalStatus; + } + + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java new file mode 100644 index 0000000..016e591 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/Plan.java @@ -0,0 +1,158 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.model.CommonApproval; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计划表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@TableName("eqpt_plan") +public class Plan extends CommonApproval implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 计划编号 + */ + @ApiModelProperty("计划编号") + @TableField("plan_no") + private String planNo; + + /** + * 计划名称 + */ + @ApiModelProperty("计划名称") + @TableField("plan_name") + private String planName; + + /** + * 计划分类(原始/追加) + */ + @ApiModelProperty("计划分类(字典值,原始/追加)") + @TableField("plan_category") + private String planCategory; + + /** + * 计划类型(年/季/月) + */ + @ApiModelProperty("计划类型(字典值,年/季/月)") + @TableField("plan_type") + private String planType; + + /** + * 年份 + */ + @ApiModelProperty("年份") + @TableField("year") + private String year; + + /** + * 季度 + */ + @ApiModelProperty("季度") + @TableField("season") + private String season; + + /** + * 月份 + */ + @ApiModelProperty("月份") + @TableField("month") + private String month; + + /** + * 备注 + */ + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + @TableField("create_user_id") + private Long createUserId; + + /** + * 创建人姓名 + */ + @ApiModelProperty("创建人姓名") + @TableField("create_user_name") + private String createUserName; + + /** + * 创建单位id + */ + @ApiModelProperty("创建单位id") + @TableField("create_dept_id") + private Long createDeptId; + + /** + * 创建单位名称 + */ + @ApiModelProperty("创建单位名称") + @TableField("create_dept_name") + private String createDeptName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @TableField("update_time") + private Date updateTime; + + /** + * 流程实例id + */ + @ApiModelProperty("流程实例id") + @TableField("process_id") + private String processId; + + /** + * 审批状态 + */ + @ApiModelProperty("审批状态") + @TableField("approval_status") + private String approvalStatus; + + @ApiModelProperty("任务id") + @TableField(exist = false) + private String taskId; + + @ApiModelProperty("可选决策项") + @TableField(exist = false) + private Integer decisionItem; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java new file mode 100644 index 0000000..df8de12 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/plan/PlanEquipmentRelation.java @@ -0,0 +1,67 @@ +package com.casic.missiles.model.plan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + *

+ * 受检设备-计量计量与设备关联表 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@TableName("eqpt_plan_equipment_relation") +public class PlanEquipmentRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId("id") + private Long id; + + /** + * 计量计划id + */ + @TableField("plan_id") + private Long planId; + + /** + * 设备id + */ + @TableField("equipment_id") + private Long equipmentId; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private Date updateTime; + + public PlanEquipmentRelation(Long planId, Long equipmentId) { + this.planId = planId; + this.equipmentId = equipmentId; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java new file mode 100644 index 0000000..ecec26d --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.plan.Plan; + +public interface ICommonApprovalService extends IService { + + void removeApproval(Long approvalId); + + ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest); + + ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest); + + ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest); + + ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest); + + void finishApproval(Long approvalId); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index d4caf2d..c1d4a64 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -22,10 +22,10 @@ String certificateValidStart, String certificateValidEnd); List list(String equipmentNo, String equipmentName,String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, - String certificateValidStart, String certificateValidEnd); + String certificateValidStart, String certificateValidEnd,List ids); EquipmentInfo detail(Long equipmentId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java new file mode 100644 index 0000000..1468ee3 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -0,0 +1,112 @@ +package com.casic.missiles.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.CommonApproval; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; +import org.flowable.engine.runtime.ProcessInstance; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +@Service +public class CommonApprovalServiceImpl, T extends CommonApproval> extends ServiceImpl implements ICommonApprovalService { + + @Autowired + private IBaseApprovalService baseApprovalService; + + private String getProcessId(Long approvalId){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("id",approvalId); + queryWrapper.select("process_id"); + List> approval = this.listMaps(queryWrapper); + if (CollUtil.isNotEmpty(approval) && ObjectUtil.isNotEmpty(approval.get(0).get("process_id"))) { + return approval.get(0).get("process_id").toString(); + } + return null; + } + + private boolean updateProcessId(Long id, String processId){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",id); + updateWrapper.set("process_id",processId); + return this.update(updateWrapper); + } + + @Override + public void removeApproval(Long approvalId) { + String processId = getProcessId(approvalId); + if (StrUtil.isNotEmpty(processId)) { + baseApprovalService.delete(processId); + } + this.removeById(approvalId); + } + + @Override + public ReturnDTO submitApproval(ApprovalSubmitRequest submitRequest) { + String processId = getProcessId(submitRequest.getId()); + if (StrUtil.isEmpty(processId)) { + ReturnDTO submitRes = baseApprovalService.processSubmit(submitRequest.getFormId(), submitRequest.getId()); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(submitRes.getCode())) { + return submitRes; + } + ProcessInstance processInstance = (ProcessInstance) submitRes.getData(); + this.updateProcessId(submitRequest.getId(),processInstance.getProcessInstanceId()); + } else { + baseApprovalService.resubmit(processId); + } + return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); + } + + @Override + public ReturnDTO cancelApproval(ApprovalRevokeRequest revokeRequest) { + ReturnDTO res = baseApprovalService.revoke(revokeRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(revokeRequest.getId(), ApprovalStatusEnum.CANCELED); + } + + @Override + public ReturnDTO agreeApproval(BaseApprovalRequest agreeRequest) { + return baseApprovalService.agree(agreeRequest); + } + + @Override + public ReturnDTO refuseApproval(BaseApprovalRequest refuseRequest) { + ReturnDTO res = baseApprovalService.reject(refuseRequest); + if (!ResponseData.DEFAULT_SUCCESS_CODE.equals(res.getCode())) { + return res; + } + return updateApprovalStatus(refuseRequest.getId(), ApprovalStatusEnum.FAILED); + } + + @Override + public void finishApproval(Long approvalId) { + updateApprovalStatus(approvalId,ApprovalStatusEnum.PASSED); + } + + private ReturnDTO updateApprovalStatus(Serializable approvalId, String approvalStatus) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",approvalId); + updateWrapper.set("approval_status",approvalStatus); + boolean updateRes = this.update(updateWrapper); + return updateRes ? ReturnUtil.success() : ReturnUtil.failed("请求失败"); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 85b5b90..f5868d7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -46,18 +46,24 @@ } @Override - public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List list(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); return this.baseMapper.selectList(dataScope, queryWrapper); } @Override - public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd) { + public List groupByName(String equipmentNo, String equipmentName, String equipmentType, List deptIds, String usePosition, String usageStatus, String certificateValidStart, String certificateValidEnd,List ids) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dataScopeDeptIds = dataScope.getDeptIds(); deptIds.addAll(dataScopeDeptIds); QueryWrapper queryWrapper = commonQuery(equipmentNo, equipmentName, equipmentType, deptIds, usePosition, usageStatus, certificateValidStart, certificateValidEnd); + if(CollUtil.isNotEmpty(ids)){ + queryWrapper.in("id",ids); + } queryWrapper.groupBy("equipment_name"); queryWrapper.select("equipment_name as 'equipmentName',count(*) as 'count'"); List> resMap = this.listMaps(queryWrapper); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java new file mode 100644 index 0000000..257f6a8 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanEquipmentRelationServiceImpl.java @@ -0,0 +1,59 @@ +package com.casic.missiles.service.impl.plan; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.model.equipment.EquipmentAttachment; +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.casic.missiles.mapper.plan.PlanEquipmentRelationMapper; +import com.casic.missiles.service.plan.IPlanEquipmentRelationService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 受检设备-计量计量与设备关联表 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Service +public class PlanEquipmentRelationServiceImpl extends ServiceImpl implements IPlanEquipmentRelationService { + + @Override + public boolean saveByPlan(Long planId, List equipmentIds) { + boolean res; + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + res = this.remove(wrapper); + List relationList = new ArrayList<>(); + if(res && CollUtil.isNotEmpty(equipmentIds)){ + equipmentIds.forEach(i->relationList.add(new PlanEquipmentRelation(planId,i))); + res = this.saveBatch(relationList); + } + return res; + } + + @Override + public boolean removeByPlan(Long planId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + return this.remove(wrapper); + } + + @Override + public List selectEquipmentsByPlan(Long planId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("plan_id",planId); + List relationList = this.list(wrapper); + if(CollUtil.isNotEmpty(relationList)){ + return relationList.stream().map(PlanEquipmentRelation::getEquipmentId).distinct().collect(Collectors.toList()); + }else { + return new ArrayList<>(); + } + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java new file mode 100644 index 0000000..126a51c --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java @@ -0,0 +1,185 @@ +package com.casic.missiles.service.impl.plan; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; +import com.casic.missiles.mapper.plan.PlanMapper; +import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.impl.CommonApprovalServiceImpl; +import com.casic.missiles.service.plan.IPlanEquipmentRelationService; +import com.casic.missiles.service.plan.IPlanService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.PrefixCodeEnum.*; +import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; +import static com.casic.missiles.enums.plan.PlanTypeEnum.*; + +/** + *

+ * 受检设备-计量计划表 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +@Service +public class PlanServiceImpl extends CommonApprovalServiceImpl implements IPlanService { + + @Autowired + private IPlanEquipmentRelationService relationService; + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IBaseApprovalService baseApprovalService; + + @Override + public Long saveOrUpdateApproval(PlanForm planForm) { + // 1. 生成统一编号 + if (StrUtil.isEmpty(planForm.getPlanNo())) { + Long maxNo = this.baseMapper.selectMaxNo(planForm.getPlanType()); + String prefix = getPrefixByType(planForm.getPlanType()); + planForm.setPlanNo(NumberGeneratorUtil.getContactNo(prefix, maxNo)); + } + // 2. 设置申请状态:草稿箱 + planForm.setApprovalStatus(ApprovalStatusEnum.DRAFT); + // 3. 保存扩展表 + this.saveOrUpdate(planForm); + if (CollUtil.isNotEmpty(planForm.getEquipmentIds())) { + relationService.saveByPlan(planForm.getId(), planForm.getEquipmentIds()); + } + // 4. 返回申请记录id + return planForm.getId(); + } + + private String getPrefixByType(String planType){ + switch (planType){ + case PLAN_TYPE_YEAR: + return PLAN_YEAR_PREFIX; + case PLAN_TYPE_SEASON: + return PLAN_SEASON_PREFIX; + case PLAN_TYPE_MONTH: + return PLAN_MONTH_PREFIX; + default: + return null; + } + } + + @Override + @Transactional + public void removeApproval(Long planId) { + super.removeApproval(planId); + relationService.removeByPlan(planId); + } + + @Override + public PlanForm detail(Long planId) { + PlanForm planForm = (PlanForm) this.getById(planId); + planForm.setEquipmentIds(relationService.selectEquipmentsByPlan(planId)); + return planForm; + } + + @Override + public Page listPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus) { + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + if(StrUtil.isNotEmpty(approvalStatus)){ + queryWrapper.eq("approval_status",approvalStatus); + } + page = this.page(page,queryWrapper); + return page; + } + + @Override + public Page toApprovalListPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return page; + } + + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + page = this.page(page, queryWrapper); + for (Plan approval : page.getRecords()) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + } + return page; + } + + @Override + public Page approvedListPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return page; + } + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + queryWrapper.in("id", approvedIds); + return this.page(page, queryWrapper); + } + + /** + * todo datascope ? + */ + @Override + public Page allPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName) { + QueryWrapper queryWrapper = commonQuery(planNo, planName, planCategory, planType, createTimeStart, createTimeEnd, createDeptName); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); + page = this.page(page,queryWrapper); + return page; + } + + private QueryWrapper commonQuery(String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(StrUtil.isNotEmpty(planNo)){ + queryWrapper.like("plan_no",planNo); + } + if(StrUtil.isNotEmpty(planName)){ + queryWrapper.like("plan_name",planName); + } + if(StrUtil.isNotEmpty(planCategory)){ + queryWrapper.eq("plan_category",planCategory); + } + if(StrUtil.isNotEmpty(planType)){ + queryWrapper.eq("plan_type",planType); + } + if(StrUtil.isNotEmpty(createTimeStart)){ + queryWrapper.ge("create_time",createTimeStart); + } + if(StrUtil.isNotEmpty(createTimeEnd)){ + queryWrapper.le("create_time",createTimeEnd); + } + if(StrUtil.isNotEmpty(createDeptName)){ + queryWrapper.like("create_dept_name",createDeptName); + } + return queryWrapper; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index 7e81c9c..71f2915 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -139,6 +139,7 @@ @Override public void finishApproval(Long approvalId) { EquipmentStatusApproval approval = this.getById(approvalId); + updateApprovalStatus(approval,ApprovalStatusEnum.PASSED); switch (approval.getApprovalType()) { case SEAL: equipmentInfoService.updateEquipmentStatus(approval.getEquipmentId(), EquipmentStatusTypeEnum.SEAL); @@ -231,6 +232,7 @@ @Override public Page allPage(Page page, String approvalNo, String approvalType, String equipmentNo, String equipmentName, String formId) { QueryWrapper queryWrapper = commonQuery(approvalNo, approvalType, equipmentNo, equipmentName); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List list = this.baseMapper.listScopePage(dataScope, page, queryWrapper); page.setRecords(list); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/plan/IPlanEquipmentRelationService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/plan/IPlanEquipmentRelationService.java new file mode 100644 index 0000000..db65d0b --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/plan/IPlanEquipmentRelationService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.service.plan; + +import com.casic.missiles.model.plan.PlanEquipmentRelation; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 受检设备-计量计量与设备关联表 服务类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface IPlanEquipmentRelationService extends IService { + + boolean saveByPlan(Long planId, List equipmentIds); + + boolean removeByPlan(Long planId); + + List selectEquipmentsByPlan(Long planId); + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/plan/IPlanService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/plan/IPlanService.java new file mode 100644 index 0000000..e5b679b --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/plan/IPlanService.java @@ -0,0 +1,41 @@ +package com.casic.missiles.service.plan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; +import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; +import com.casic.missiles.dto.flowable.BaseApprovalRequest; +import com.casic.missiles.dto.plan.PlanForm; +import com.casic.missiles.dto.status.EquipmentStatusApprovalListDTO; +import com.casic.missiles.model.plan.Plan; +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.ICommonApprovalService; + +/** + *

+ * 受检设备-计量计划表 服务类 + *

+ * + * @author zhangyingjie + * @since 2023-08-08 + */ +public interface IPlanService extends ICommonApprovalService { + + Long saveOrUpdateApproval(PlanForm planForm); + + PlanForm detail(Long approvalId); + + Page listPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String approvalStatus); + + Page toApprovalListPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName, String formId); + + Page approvedListPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName,String formId); + + Page allPage(Page page, String planNo, String planName, String planCategory, String planType, String createTimeStart, + String createTimeEnd, String createDeptName); + +}