springcloud_k8s_panzhihuazhihuishequ/common/pom.xml
@@ -26,6 +26,7 @@ <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml
@@ -11,31 +11,31 @@ serviceUrl: defaultZone: http://${EUREKA_URL:localhost}:8192/eureka spring: application: name: huacheng-config cloud: config: server: git: uri: http://gitlab.nhys.cdnhxx.com:9380/huanghongfa/config-repo.git # search-paths: adminConfig username: huanghongfa password: huanghongfa123456 default-label: huacheng # basedir: F:\nahan\config-repo\config-repo #spring: # application: # name: huacheng-config # profiles: # active: native # # cloud: # config: # server: # native: # search-locations: file:E:\\work\\config\\config-repo # git: # uri: http://gitlab.nhys.cdnhxx.com:9380/huanghongfa/config-repo.git ## search-paths: adminConfig # username: huanghongfa # password: huanghongfa123456 # default-label: huacheng ## basedir: F:\nahan\config-repo\config-repo spring: application: name: huacheng-config profiles: active: native cloud: config: server: native: search-locations: file:F:\lfl\config-repo-huacheng management: endpoints: springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/pom.xml
@@ -63,6 +63,13 @@ </dependency> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.10.1</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> </dependency> @@ -79,10 +86,10 @@ <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <!-- <dependency>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-amqp</artifactId>--> <!-- </dependency>--> <!--添加监控依赖包--> <dependency> <groupId>io.micrometer</groupId> springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/ServiceSangeshenbianApplication.java
@@ -1,5 +1,6 @@ package com.panzhihua.sangeshenbian; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.cloud.client.SpringCloudApplication; import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; @@ -7,16 +8,19 @@ import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; import org.springframework.scheduling.annotation.EnableScheduling; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * Hello world! * */ @SpringCloudApplication @EnableSwagger2 @EnableFeignClients(basePackages = {"com.panzhihua.common.service"}) @EnableEurekaClient @EnableCircuitBreaker @ComponentScan({"com.panzhihua.sangeshenbian", "com.panzhihua.common"}) @MapperScan("com.panzhihua.sangeshenbian.dao") @EnableScheduling public class ServiceSangeshenbianApplication { springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/annotation/DistributedLock.java
New file @@ -0,0 +1,34 @@ package com.panzhihua.sangeshenbian.annotation; import java.lang.annotation.*; /** * @Descreption: 分布式锁注解 * @Author: lfl */ @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface DistributedLock { /** * 锁名字(没有EL解析) */ String lockName() default ""; /** * 锁前缀(有EL解析) */ String lockNamePre() default ""; /** * 锁后缀(有EL解析) */ String lockNamePost() default ""; /** * 锁前后缀拼接分隔符 */ String separator() default "_"; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/BannerController.java
@@ -4,9 +4,8 @@ import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.interfaces.OperLog; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.model.Banner; import com.panzhihua.sangeshenbian.model.ProblemType; import com.panzhihua.sangeshenbian.model.SystemUser; import com.panzhihua.sangeshenbian.model.entity.Banner; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.service.IBannerService; import com.panzhihua.sangeshenbian.service.ISystemUserService; import io.swagger.annotations.Api; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/DepartmentController.java
@@ -3,8 +3,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.panzhihua.common.interfaces.OperLog; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.model.Department; import com.panzhihua.sangeshenbian.model.SystemUser; import com.panzhihua.sangeshenbian.model.entity.Department; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.service.IDepartmentService; import com.panzhihua.sangeshenbian.service.ISystemUserService; import io.swagger.annotations.Api; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/MessageNotificationController.java
@@ -4,8 +4,7 @@ import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.interfaces.OperLog; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.model.MessageNotification; import com.panzhihua.sangeshenbian.model.SystemUser; import com.panzhihua.sangeshenbian.model.entity.MessageNotification; import com.panzhihua.sangeshenbian.service.IMessageNotificationService; import com.panzhihua.sangeshenbian.service.ISystemUserService; import com.panzhihua.sangeshenbian.warpper.MessageNotificationList; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/ProblemTypeController.java
@@ -5,8 +5,8 @@ import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.interfaces.OperLog; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.model.ProblemType; import com.panzhihua.sangeshenbian.model.SystemUser; import com.panzhihua.sangeshenbian.model.entity.ProblemType; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.service.IProblemTypeService; import com.panzhihua.sangeshenbian.service.ISystemUserService; import io.swagger.annotations.Api; @@ -17,7 +17,6 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemMenuController.java
@@ -2,7 +2,7 @@ import com.panzhihua.common.interfaces.OperLog; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.model.SystemMenu; import com.panzhihua.sangeshenbian.model.entity.SystemMenu; import com.panzhihua.sangeshenbian.service.ISystemMenuService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemRoleController.java
@@ -5,8 +5,8 @@ import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.interfaces.OperLog; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.model.SystemRole; import com.panzhihua.sangeshenbian.model.SystemRoleMenu; import com.panzhihua.sangeshenbian.model.entity.SystemRole; import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu; import com.panzhihua.sangeshenbian.service.ISystemRoleMenuService; import com.panzhihua.sangeshenbian.service.ISystemRoleService; import com.panzhihua.sangeshenbian.warpper.*; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java
@@ -2,17 +2,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.panzhihua.common.constants.SecurityConstants; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.interfaces.OperLog; import com.panzhihua.common.model.dtos.PageBaseDTO; import com.panzhihua.common.model.vos.LoginReturnVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; import com.panzhihua.common.service.auth.TokenService; import com.panzhihua.sangeshenbian.model.SystemMenu; import com.panzhihua.sangeshenbian.model.SystemRoleMenu; import com.panzhihua.sangeshenbian.model.SystemUser; import com.panzhihua.sangeshenbian.model.entity.SystemMenu; import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.service.ISystemMenuService; import com.panzhihua.sangeshenbian.service.ISystemRoleMenuService; import com.panzhihua.sangeshenbian.service.ISystemUserService; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/WorkOrderItemConfigController.java
@@ -2,7 +2,7 @@ import com.panzhihua.common.interfaces.OperLog; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.model.WorkOrderItemConfig; import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig; import com.panzhihua.sangeshenbian.service.IWorkOrderItemConfigService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/aspectj/DistributedLockAspect.java
New file @@ -0,0 +1,138 @@ package com.panzhihua.sangeshenbian.aspectj; import com.panzhihua.sangeshenbian.annotation.DistributedLock; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.core.LocalVariableTableParameterNameDiscoverer; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.lang.reflect.Method; import java.util.Objects; /** * @Desecription: 分布式锁切面 * 注意!!!分布式锁不能加在事务方法当中:因为当锁释放,事务还没有提交 */ @Aspect @Component @Slf4j public class DistributedLockAspect { @Resource private RedissonClient redissonClient; /** * @Descreption: 定义切面:以注解为切面 */ @Pointcut("@annotation(com.panzhihua.sangeshenbian.annotation.DistributedLock)") public void distributedLockAspect() { } @Around(value = "distributedLockAspect()") public Object doAround(ProceedingJoinPoint pjp) throws Throwable { //切点所在的类 MethodSignature methodSignature = (MethodSignature) pjp.getSignature(); Method method = methodSignature.getMethod(); // DistributedLock annotation = method.getAnnotation(DistributedLock.class); String lockName = getLockName(annotation, pjp.getArgs(), method); //log.info("lockName:"+lockName); RLock lock = redissonClient.getLock(lockName); lock.lock(); try { return pjp.proceed(); } finally { if (lock.isLocked() && lock.isHeldByCurrentThread()) { //释放锁 lock.unlock(); } } } /** * @Descreption: 获取锁名字,优先获取注解中锁名 */ private String getLockName(DistributedLock distributedLock, Object[] args, Method method) { //优先获取注解名称 if (StringUtils.isNotBlank(distributedLock.lockName())) { return distributedLock.lockName(); } //根据参数匹配有参数就使用动态参数,没有就使用定义参数 String lockNamePre = distributedLock.lockNamePre(); String lockNamePost = distributedLock.lockNamePost(); String separator = distributedLock.separator(); String preExpression = parseExpression(lockNamePre, method, args); String postExpression = parseExpression(lockNamePost, method, args); StringBuilder sb = new StringBuilder(); if (StringUtils.isNotBlank(preExpression)) { sb.append(preExpression); } else { sb.append(lockNamePre); } sb.append(separator); if (StringUtils.isNotBlank(postExpression)) { sb.append(postExpression); } else { sb.append(lockNamePost); } return sb.toString(); } /** * el表达式解析 * * @param expressionString 解析值 * @param method 方法 * @param args 参数 * @return */ private String parseExpression(String expressionString, Method method, Object[] args) { //获取被拦截方法参数名列表 LocalVariableTableParameterNameDiscoverer discoverer = new LocalVariableTableParameterNameDiscoverer(); String[] paramNameArr = discoverer.getParameterNames(method); //SPEL解析 ExpressionParser parser = new SpelExpressionParser(); StandardEvaluationContext context = new StandardEvaluationContext(); for (int i = 0; i < Objects.requireNonNull(paramNameArr).length; i++) { context.setVariable(paramNameArr[i], args[i]); } return parser.parseExpression(expressionString).getValue(context, String.class); } // ==========================示例============================= // //固定静态参数锁:product_lock // @DistributedLock(lockName = "product_lock") // @GetMapping(value = "/test1") // public void test1() { // System.out.println("执行事务"); // } // // //未匹配到参数,因此仍然是静态参数锁:#param1_#param2 // @DistributedLock(lockNamePre = "#param1", lockNamePost = "#param2") // @GetMapping(value = "/test2") // public void test2() { // System.out.println("执行事务"); // } // //匹配到参数,动态参数锁:hello_world // @DistributedLock(lockNamePre = "#order", lockNamePost = "#param2") // @GetMapping(value = "/test3") public void test3(String param1, String param2) { System.out.println("执行事务"); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MyMetaObjectHandler.java
New file @@ -0,0 +1,42 @@ package com.panzhihua.sangeshenbian.config; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.util.Date; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 自动填充 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-11 14:23 **/ @Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill ...."); // this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 起始版本 3.3.0(推荐使用) // 或者 this.strictInsertFill(metaObject, "createTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐) this.strictInsertFill(metaObject, "updateTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐) // 或者 // this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug) this.strictInsertFill(metaObject, "createTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐) this.strictInsertFill(metaObject, "updateTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐) } @Override public void updateFill(MetaObject metaObject) { log.info("start update fill ...."); // this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐) // 或者 this.strictUpdateFill(metaObject, "createTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐) this.strictUpdateFill(metaObject, "updateTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐) // 或者 // this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug) } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MybatisPlusConfig.java
New file @@ -0,0 +1,34 @@ package com.panzhihua.sangeshenbian.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 分页 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-11-30 16:26 **/ @Configuration public class MybatisPlusConfig { /** * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除) */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } @Bean public ConfigurationCustomizer configurationCustomizer() { return configuration -> configuration.setUseDeprecatedExecutor(false); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/RedissonConfig.java
New file @@ -0,0 +1,57 @@ package com.panzhihua.sangeshenbian.config; import org.apache.commons.lang3.StringUtils; import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.redisson.config.SingleServerConfig; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @Desecription: */ @Configuration public class RedissonConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private String port; @Value("${spring.redis.database}") private int database; @Value("${spring.redis.timeout}") private String timeout; @Value("${spring.redis.password}") private String password; /** * @Descreption: RedissonClient, 单机模式 */ @Bean(destroyMethod = "shutdown") public RedissonClient redisson() { Config config = new Config(); SingleServerConfig singleServerConfig = config.useSingleServer(); singleServerConfig.setAddress("redis://" + host + ":" + port); singleServerConfig.setTimeout(10000); singleServerConfig.setDatabase(database); singleServerConfig.setRetryInterval(1000); singleServerConfig.setPingConnectionInterval(1000); if (StringUtils.isNotBlank(password)) { singleServerConfig.setPassword(password); } return Redisson.create(config); } // @Bean // public RedissonLocker redissonLocker(RedissonClient redissonClient) { // RedissonLocker locker = new RedissonLocker(redissonClient); // redissonClient.getlo // //设置LockUtil的锁处理对象 // LockUtils.setLocker(locker); // return locker; // } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/SwaggerConfig.java
New file @@ -0,0 +1,31 @@ package com.panzhihua.sangeshenbian.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: swagger3 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-11-19 16:08 **/ @Configuration public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(true).select() // .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .apis(RequestHandlerSelectors.basePackage("com.panzhihua.sangeshenbian")).build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder().title("三个身边开发文档").description("。").contact(new Contact("lfl", "", "")) .version("1.0").build(); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/BcRegionController.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.sangeshenbian.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * 行政区划表 前端控制器 * </p> * * @author * @since 2025-02-23 */ @RestController @RequestMapping("/bc-region") public class BcRegionController { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComActController.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.sangeshenbian.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * 社区表 前端控制器 * </p> * * @author * @since 2025-02-23 */ @RestController @RequestMapping("/com-act") public class ComActController { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComStreetController.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.sangeshenbian.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * 街道表 前端控制器 * </p> * * @author * @since 2025-02-23 */ @RestController @RequestMapping("/com-street") public class ComStreetController { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintAuditRecordController.java
New file @@ -0,0 +1,24 @@ package com.panzhihua.sangeshenbian.controller; import com.panzhihua.common.model.vos.R; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * 诉求上报、延期申请审核表 前端控制器 * </p> * * @author * @since 2025-02-23 */ @RestController @RequestMapping("/applet/complaint-audit-record") public class ComplaintAuditRecordController { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java
New file @@ -0,0 +1,158 @@ package com.panzhihua.sangeshenbian.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.annotation.DistributedLock; import com.panzhihua.sangeshenbian.model.dto.*; import com.panzhihua.sangeshenbian.model.entity.Complaint; import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord; import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; import com.panzhihua.sangeshenbian.service.IComplaintService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; /** * <p> * 诉求报告表 前端控制器 * </p> * * @author * @since 2025-02-22 */ @Validated @RestController @RequestMapping("/applet/complaint") @RequiredArgsConstructor @Api(tags = "诉求管理") public class ComplaintController extends BaseController { private final IComplaintService complaintService; /** * 录入诉求 */ @PostMapping("/save") @ApiOperation(value = "录入诉求") @DistributedLock(lockName = "complaint_serial_number_lock") public void save(Complaint complaint) { complaintService.saveComplaint(complaint, getUserId()); } @PostMapping("/list") @ApiOperation("工单列表") public R<Page<ComplaintVO>> complaintList(@RequestBody ComplaintQuery query) { return R.ok(complaintService.complaintList(query,getLoginUserInfo())); } @GetMapping("/detail") @ApiOperation("工单详情") public R<ComplaintVO> detail(@ApiParam(name = "id", value = "工单id", required = true) Long id) { return R.ok(complaintService.detail(id)); } @GetMapping("/progress/{complaintId}") public R<List<ComplaintProgress>> progress(@ApiParam(name = "complaintId", value = "诉求id", required = true) @PathVariable("complaintId") Long complaintId) { return R.ok(complaintService.progress(complaintId)); } @PostMapping("/save-process") @ApiOperation("办理进度录入") public R<?> saveProcess(@Valid @RequestBody ComplaintProcessDTO dto){ complaintService.saveProcess(dto,getLoginUserInfo()); return R.ok(); } @PostMapping("/save-result") @ApiOperation("办理结果录入") public R<?> saveResult(@RequestBody ComplaintCompletionDTO dto){ complaintService.saveResult(dto,getLoginUserInfo()); return R.ok(); } @GetMapping("/delay-detail/{complaintId}") @ApiOperation("延期情况说明") public R<ComplaintAuditRecord> delayDetail(@ApiParam(name = "complaintId", value = "诉求id", required = true) @PathVariable("complaintId") Long complaintId) { return R.ok(complaintService.delayDetail(complaintId)); } /** * 问题上报 */ @PostMapping("/report") @ApiOperation(value = "问题上报") public R<?> report(@RequestBody ComplaintReportDTO complaintReportDTO) { complaintService.saveReport(complaintReportDTO, getLoginUserInfo()); return R.ok(); } /** * 诉求下派 */ @PostMapping("/saveDispatch") @ApiOperation("诉求下派") public R<?> saveDispatch(@RequestBody ComplaintDispatch dto){ complaintService.saveDispatch(dto, getLoginUserInfo()); return R.ok(); } /** * 延期申请 */ @PostMapping("/saveDelay") @ApiOperation(value = "延期申请") public R<?> saveDelay(@RequestBody ComplaintDelayDTO dto){ complaintService.saveDelay(dto, getLoginUserInfo()); return R.ok(); } /** * 延期审核 */ @PostMapping("/delayAudit") @ApiOperation(value = "延期审核") public R<?> delayAudit(@RequestBody ComplaintDelayAuditDTO dto) { complaintService.delayAudit(dto, getLoginUserInfo()); return R.ok(); } /** * 上报审核 */ @PostMapping("/reportAudit") @ApiOperation(value = "问题上报审核") public R<?> reportAudit(@RequestBody ComplaintReporAuditDTO dto) { complaintService.reportAudit(dto, getLoginUserInfo()); return R.ok(); } /** * 获取下派单位列表 */ @GetMapping("/getDispatchList") @ApiOperation(value = "获取下派单位列表") public R<?> getDispatchList() { return R.ok(complaintService.getDispatchList(getLoginUserInfo())); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintFlowController.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.sangeshenbian.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * 诉求流转记录表 前端控制器 * </p> * * @author * @since 2025-02-22 */ @RestController @RequestMapping("/complaint-flow") public class ComplaintFlowController { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintProgressController.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.sangeshenbian.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * 前端控制器 * </p> * * @author * @since 2025-02-22 */ @RestController @RequestMapping("/complaint-progress") public class ComplaintProgressController { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
New file @@ -0,0 +1,73 @@ package com.panzhihua.sangeshenbian.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; import com.panzhihua.common.service.sangeshenbian.SystemUserService; import com.panzhihua.sangeshenbian.model.entity.Banner; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.model.query.BasePage; import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO; import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO; import com.panzhihua.sangeshenbian.model.vo.PartyCardInfoVO; import com.panzhihua.sangeshenbian.service.IBannerService; import com.panzhihua.sangeshenbian.service.IComplaintService; import com.panzhihua.sangeshenbian.service.IMessageNotificationService; import com.panzhihua.sangeshenbian.service.ISystemUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * @author mitao * @date 2025/2/23 */ @RestController @RequestMapping("/applet/home") @RequiredArgsConstructor @Api(tags = "首页相关接口") public class HomeController extends BaseController { private final IBannerService bannerService; private final IMessageNotificationService messageNotificationService; private final IComplaintService complaintService; private final ISystemUserService systemUserService; @ApiOperation("获取banner列表") @GetMapping("/banner-list") public R<List<Banner>> getBannerList() { return R.ok(bannerService.list()); } @GetMapping("/party-card-info") @ApiOperation("获取党员证信息") public R<PartyCardInfoVO> getPartyCardInfo() { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); PartyCardInfoVO partyCardInfoVO = new PartyCardInfoVO(); partyCardInfoVO.setName(loginUserInfo.getName()); partyCardInfoVO.setIdCard(loginUserInfo.getIdCard()); partyCardInfoVO.setPartyOrganization(loginUserInfo.getCommunityName()); return R.ok(partyCardInfoVO); } @PostMapping("/message") @ApiOperation("获取消息列表") public R<Page<MessageNotificationVO>> getMessageList(@RequestBody BasePage page) { return R.ok(messageNotificationService.getMessageList(page,getUserId())); } @PostMapping("/todo-list") @ApiOperation("获取待办诉求") public R<Page<ComplaintTodoVO>> getTodoList(@RequestBody BasePage page) { return R.ok(complaintService.getTodoList(page,getLoginUserInfo())); } @GetMapping("/current-user-info") @ApiOperation("获取三个身边当前用户信息 用于判断用户是否是上级") public R<SystemUser> getCurrentUserInfo() { return R.ok(systemUserService.getSystemUserByPhone(getLoginUserInfo().getPhone()).get()); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BcRegionMapper.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.dao; import com.panzhihua.sangeshenbian.model.entity.BcRegion; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * 行政区划表 Mapper 接口 * </p> * * @author * @since 2025-02-23 */ public interface BcRegionMapper extends BaseMapper<BcRegion> { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComActMapper.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.dao; import com.panzhihua.sangeshenbian.model.entity.ComAct; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * 社区表 Mapper 接口 * </p> * * @author * @since 2025-02-23 */ public interface ComActMapper extends BaseMapper<ComAct> { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComStreetMapper.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.dao; import com.panzhihua.sangeshenbian.model.entity.ComStreet; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * 街道表 Mapper 接口 * </p> * * @author * @since 2025-02-23 */ public interface ComStreetMapper extends BaseMapper<ComStreet> { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintAuditRecordMapper.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.dao; import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * 诉求上报、延期申请审核表 Mapper 接口 * </p> * * @author * @since 2025-02-23 */ public interface ComplaintAuditRecordMapper extends BaseMapper<ComplaintAuditRecord> { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintFlowMapper.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.dao; import com.panzhihua.sangeshenbian.model.entity.ComplaintFlow; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * 诉求流转记录表 Mapper 接口 * </p> * * @author * @since 2025-02-22 */ public interface ComplaintFlowMapper extends BaseMapper<ComplaintFlow> { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java
New file @@ -0,0 +1,46 @@ package com.panzhihua.sangeshenbian.dao; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.sangeshenbian.model.entity.Complaint; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.panzhihua.sangeshenbian.model.query.BasePage; import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO; import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; import org.apache.ibatis.annotations.Param; /** * <p> * 问题报告表 Mapper 接口 * </p> * * @author * @since 2025-02-22 */ public interface ComplaintMapper extends BaseMapper<Complaint> { /** * 工单列表 * @param page * @param query * @param targetId * @param isSuperior * @return */ Page<ComplaintVO> selectComplaintPage(Page<ComplaintVO> page, @Param("query") ComplaintQuery query, @Param("targetId") String targetId, @Param("isSuperior") Integer isSuperior); /** * 工单详情 * @param id * @return */ ComplaintVO getDetail(Long id); /** * 获取待办诉求 * @param page * @param targetId * @param isSuperior * @return */ Page<ComplaintTodoVO> getTodoList(Page<ComplaintTodoVO> page, @Param("targetId") String targetId, @Param("isSuperior") int isSuperior); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintProgressMapper.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.dao; import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * Mapper 接口 * </p> * * @author * @since 2025-02-22 */ public interface ComplaintProgressMapper extends BaseMapper<ComplaintProgress> { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/DepartmentMapper.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.panzhihua.sangeshenbian.model.Department; import org.apache.ibatis.annotations.Mapper; import com.panzhihua.sangeshenbian.model.entity.Department; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/MessageNotificationMapper.java
@@ -3,7 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.sangeshenbian.model.MessageNotification; import com.panzhihua.sangeshenbian.model.entity.MessageNotification; import com.panzhihua.sangeshenbian.warpper.MessageNotificationList; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ProblemTypeMapper.java
@@ -3,7 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.sangeshenbian.model.ProblemType; import com.panzhihua.sangeshenbian.model.entity.ProblemType; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemMenuMapper.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.panzhihua.sangeshenbian.model.SystemMenu; import org.apache.ibatis.annotations.Mapper; import com.panzhihua.sangeshenbian.model.entity.SystemMenu; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMapper.java
@@ -3,12 +3,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.sangeshenbian.model.SystemRole; import com.panzhihua.sangeshenbian.model.entity.SystemRole; import com.panzhihua.sangeshenbian.warpper.SystemRoleListVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMenuMapper.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.panzhihua.sangeshenbian.model.SystemRoleMenu; import org.apache.ibatis.annotations.Mapper; import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemUserMapper.java
@@ -3,13 +3,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.sangeshenbian.model.SystemUser; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.warpper.SystemUserList; import com.panzhihua.sangeshenbian.warpper.SystemUserListVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/WorkOrderItemConfigMapper.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.panzhihua.sangeshenbian.model.WorkOrderItemConfig; import org.apache.ibatis.annotations.Mapper; import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/AuditStatusEnum.java
New file @@ -0,0 +1,36 @@ package com.panzhihua.sangeshenbian.enums; import lombok.Data; // 审核状态枚举类 public enum AuditStatusEnum { PENDING(0, "待审核"), APPROVED(1, "审核通过"), REJECTED(2, "审核驳回"); private final int code; private final String description; AuditStatusEnum(int code, String description) { this.code = code; this.description = description; } public int getCode() { return code; } public String getDescription() { return description; } public static String getDescriptionByCode(int code) { for (AuditStatusEnum status : AuditStatusEnum.values()) { if (status.getCode() == code) { return status.getDescription(); } } return null; } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ProcessStatusEnum.java
New file @@ -0,0 +1,34 @@ package com.panzhihua.sangeshenbian.enums; // 流转状态枚举类(更名为 ProcessStatusEnum) public enum ProcessStatusEnum { PROCESSING(0, "正在办理"), EXTENDED(1, "延期办理"), OVERDUE(2, "超时办理"), COMPLETED(3, "已办结"); private final int code; private final String description; ProcessStatusEnum(int code, String description) { this.code = code; this.description = description; } public int getCode() { return code; } public String getDescription() { return description; } public static String getDescriptionByCode(int code) { for (ProcessStatusEnum status : ProcessStatusEnum.values()) { if (status.getCode() == code) { return status.getDescription(); } } return null; } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ReportTypeEnum.java
New file @@ -0,0 +1,33 @@ package com.panzhihua.sangeshenbian.enums; public enum ReportTypeEnum { COMMUNITY(1, "社区"), STREET(2, "街道"), DISTRICT(3, "区县"), CITY(4, "市"); private final int code; private final String description; ReportTypeEnum(int code, String description) { this.code = code; this.description = description; } public int getCode() { return code; } public String getDescription() { return description; } public static ReportTypeEnum fromCode(int code) { for (ReportTypeEnum type : ReportTypeEnum.values()) { if (type.getCode() == code) { return type; } } throw new IllegalArgumentException("Invalid code: " + code); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintCompletionDTO.java
New file @@ -0,0 +1,38 @@ package com.panzhihua.sangeshenbian.model.dto; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @author mitao * @date 2025/2/23 */ @Data @ApiModel("办理结果录入数据传输对象") public class ComplaintCompletionDTO { @ApiModelProperty(value = "诉求id") private Long complaintId; @ApiModelProperty(value = "办结状态: 3-已办结 4-群众撤销") private Integer status; @ApiModelProperty(value = "诉求id") private Long id; @ApiModelProperty(value = "办理结果描述") private String completionDescription; @ApiModelProperty(value = "办理结果图片") private String completionImages; @ApiModelProperty(value = "办理结果视频") private String completionVideos; @ApiModelProperty(value = "办理结果其他说明") private String completionOtherDescription; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayAuditDTO.java
New file @@ -0,0 +1,19 @@ package com.panzhihua.sangeshenbian.model.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "延期审核") public class ComplaintDelayAuditDTO { @ApiModelProperty(value = "审核记录id") private Long id; @ApiModelProperty(value = "诉求id") private Long complaintId; @ApiModelProperty(value = "审核结果: 1-通过 2-驳回") private Integer auditResult; @ApiModelProperty(value = "驳回原因") private String rejectReason; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayDTO.java
New file @@ -0,0 +1,22 @@ package com.panzhihua.sangeshenbian.model.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "诉求延期") public class ComplaintDelayDTO { @ApiModelProperty(value = "诉求id") private Long complaintId; @ApiModelProperty("说明") private String comment; @ApiModelProperty("图片") private String images; @ApiModelProperty("视频") private String videos; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDispatch.java
New file @@ -0,0 +1,15 @@ package com.panzhihua.sangeshenbian.model.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "诉求下派") public class ComplaintDispatch { @ApiModelProperty(value = "诉求id") private Long complaintId; @ApiModelProperty(value = "内容") private String comment; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintProcessDTO.java
New file @@ -0,0 +1,35 @@ package com.panzhihua.sangeshenbian.model.dto; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.util.Date; /** * @author mitao * @date 2025/2/23 */ @Data @ApiModel public class ComplaintProcessDTO { @ApiModelProperty(value = "诉求id") @NotNull(message = "诉求id不能为空") private Long complaintId; @ApiModelProperty(value = "办理进度描述") @NotBlank(message = "办理进度描述不能为空") private String describe; @ApiModelProperty(value = "图片url") private String imgUrl; @ApiModelProperty(value = "视频url") private String video; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReporAuditDTO.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.model.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class ComplaintReporAuditDTO { @ApiModelProperty(value = "审核记录id") private Long id; @ApiModelProperty(value = "审核结果: 1-通过 2-驳回") private Integer auditResult; @ApiModelProperty(value = "驳回原因") private String rejectReason; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReportDTO.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.model.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "诉求上报") public class ComplaintReportDTO { @ApiModelProperty(value = "诉求id") private Long complaintId; @ApiModelProperty(value = "诉求内容") private String comment; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Banner.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/Banner.java @@ -1,8 +1,9 @@ package com.panzhihua.sangeshenbian.model; package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -40,6 +41,7 @@ * 删除标识(0=否,1=是) */ @TableField("del") @TableLogic private Integer del; /** * 添加时间 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/BcRegion.java
New file @@ -0,0 +1,70 @@ package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * 行政区划表 * </p> * * @author * @since 2025-02-23 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value="BcRegion对象", description="行政区划表") public class BcRegion implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键") @TableId(value = "region_id", type = IdType.NONE) private String regionId; @ApiModelProperty(value = "行政区划编码") private String regionCode; @ApiModelProperty(value = "行政区划名称") private String regionName; @ApiModelProperty(value = "父id") private String parentId; @ApiModelProperty(value = "所在层级") private Integer hierarchyOrder; @ApiModelProperty(value = "同层顺序") private Integer levelOrder; @ApiModelProperty(value = "层级格式编码(格式 : `**`**` )") private String formatCode; @ApiModelProperty(value = "创建者") private Long createUserId; @ApiModelProperty(value = "创建时间") private LocalDateTime createDatetime; @ApiModelProperty(value = "修改者") private Long modifyUserId; @ApiModelProperty(value = "修改时间") private LocalDateTime modifyDatetime; @ApiModelProperty(value = "删除标识(0:未删除,1:已删除)") private Boolean deleteFlag; @ApiModelProperty(value = "子集数量") private Integer childrenNum; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComAct.java
New file @@ -0,0 +1,106 @@ package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * 社区表 * </p> * * @author * @since 2025-02-23 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("com_act") @ApiModel(value="ComAct对象", description="社区表") public class ComAct implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = ",主键") @TableId(value = "community_id", type = IdType.NONE) private Long communityId; @ApiModelProperty(value = "街道Id") private Long streetId; @ApiModelProperty(value = "社区名字") private String name; @ApiModelProperty(value = "社区地址") private String address; @ApiModelProperty(value = "经度") private String lng; @ApiModelProperty(value = "维度") private String lat; @ApiModelProperty(value = "省份地址编码") private String provinceCode; @ApiModelProperty(value = "市级地址编码") private String cityCode; @ApiModelProperty(value = "区级地址编码") private String areaCode; @ApiModelProperty(value = "社区面积") private String square; @ApiModelProperty(value = "联系人") private String contacts; @ApiModelProperty(value = "联系人电话") private String contactsPhone; @ApiModelProperty(value = "社区总人口") private Integer totalUser; @ApiModelProperty(value = "社区书记-用户ID") private Long managerId; @ApiModelProperty(value = "社区书记_名称") private String managerName; @ApiModelProperty(value = "社区介绍") private String introduce; @ApiModelProperty(value = "层次递归字段(省>市>区县>街道>社区)") private String path; @ApiModelProperty(value = "超管账号") private String account; @ApiModelProperty(value = "账号密码") private String password; @ApiModelProperty(value = "状态 0 启用 1 禁用") private Integer state; @ApiModelProperty(value = "创建时间") private LocalDateTime createAt; @ApiModelProperty(value = "是否大屏统计(1.是 2.否)") private Integer isScreenStatistics; @ApiModelProperty(value = "明文密码") private String plaintextPassword; private String appId; private String solvePhone; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComStreet.java
New file @@ -0,0 +1,69 @@ package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * 街道表 * </p> * * @author * @since 2025-02-23 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value="ComStreet对象", description="街道表") public class ComStreet implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = ",主键") @TableId(value = "street_id", type = IdType.NONE) private String streetId; @ApiModelProperty(value = "街道名称") private String name; @ApiModelProperty(value = "省份地址编码") private Integer provinceCode; @ApiModelProperty(value = "市级地址编码") private Integer cityCode; @ApiModelProperty(value = "区级地址编码") private Integer areaCode; @ApiModelProperty(value = "街道地址") private String address; @ApiModelProperty(value = "经度") private String lng; @ApiModelProperty(value = "纬度") private String lat; @ApiModelProperty(value = "创建时间") private LocalDateTime createAt; @ApiModelProperty(value = "超管账号") private String account; @ApiModelProperty(value = "账号密码") private String password; @ApiModelProperty(value = "联系电话") private String phone; private String appId; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java
New file @@ -0,0 +1,143 @@ package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; import java.util.Date; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.checkerframework.checker.units.qual.A; /** * <p> * 问题报告表 * </p> * * @author * @since 2025-02-22 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("sgsb_complaint") @ApiModel(value="Complaint对象", description="问题报告表") public class Complaint implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = " ") @TableId(value = "id") private Long id; @ApiModelProperty(value = "诉求号") @TableField("serial_number") private String serialNumber; @ApiModelProperty(value = "问题发生时间") @TableField("time") private Date time; @ApiModelProperty(value = "问题类型") @TableField("problem_type") private String problemType; @ApiModelProperty(value = "群众姓名") @TableField("name") private String name; @ApiModelProperty(value = "联系电话") @TableField("contact_number") private String contactNumber; @ApiModelProperty(value = "问题发生地点") @TableField("location") private String location; @ApiModelProperty(value = "详细地址描述") @TableField("detailed_address") private String detailedAddress; @ApiModelProperty(value = "问题标题") @TableField("description_title") private String descriptionTitle; @ApiModelProperty(value = "问题描述内容") @TableField("description_content") private String descriptionContent; @ApiModelProperty(value = "上传图片") @TableField("images") private String images; @ApiModelProperty(value = "上传视频") @TableField("videos") private String videos; @ApiModelProperty(value = "流转状态:0-正在办理 1-延期办理 2-超时办理 3-已办结 4-群众撤销 5-上报待审核 6-上级驳回") @TableField("status") private Integer status; @ApiModelProperty(value = "上报类型 1=市级账号,2=区县账号,3=街道账号,4=社区账号") @TableField("report_type") private Integer reportType; @ApiModelProperty(value = "上级id") @TableField("superior_id") private Long superiorId; @ApiModelProperty(value = "创建人") @TableField("create_by") private Long createBy; @ApiModelProperty(value = "创建时间") @TableField("create_time") private Date createTime; @ApiModelProperty(value = "修改人") @TableField("update_by") private Long updateBy; @ApiModelProperty(value = "修改时间") @TableField("update_time") private Date updateTime; @ApiModelProperty(value = "办理结果描述") @TableField("completion_description") private String completionDescription; @ApiModelProperty(value = "办理结果图片") @TableField("completion_images") private String completionImages; @ApiModelProperty(value = "办理结果视频") @TableField("completion_videos") private String completionVideos; @ApiModelProperty(value = "办理结果其他说明") @TableField("completion_other_description") private String completionOtherDescription; @ApiModelProperty(value = "办结时间") @TableField("completion_time") private Date completionTime; @ApiModelProperty(value = "办结人员id") @TableField("completion_user_id") private Long completionUserId; @ApiModelProperty(value = "办结人员") @TableField("completion_username") private String completionUsername; @ApiModelProperty(value = "办结人员") @TableField("completion_user_phone") private String completionUserPhone; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java
New file @@ -0,0 +1,89 @@ package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * 诉求上报、延期申请审核表 * </p> * * @author * @since 2025-02-23 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("sgsb_complaint_audit_record") @ApiModel(value="ComplaintAuditRecord对象", description="诉求上报、延期申请审核表") public class ComplaintAuditRecord implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键") @TableId(value = "id", type = IdType.ASSIGN_ID) private Long id; @ApiModelProperty(value = "是否最新") @TableField("latest_flag") private Boolean latestFlag; @ApiModelProperty(value = "诉求id") @TableField("complaint_id") private Long complaintId; @ApiModelProperty(value = "审核人id") @TableField("auditor_id") private Long auditorId; @ApiModelProperty(value = "审核类型(1:延期申请, 2:上报申请)") @TableField("audit_type") private Integer auditType; @ApiModelProperty(value = "审核状态 (0:待审核 1:审核通过 2:审核驳回)") @TableField("audit_status") private Integer auditStatus; @ApiModelProperty(value = "驳回原因") @TableField("reject_reason") private String rejectReason; @ApiModelProperty(value = "上报说明/延期申请说明") @TableField("comment") private String comment; @ApiModelProperty(value = "图片") @TableField("images") private String images; @ApiModelProperty(value = "视频") @TableField("videos") private String videos; @ApiModelProperty(value = "创建人") @TableField("create_by") private Long createBy; @ApiModelProperty(value = "创建时间") @TableField("create_time") private LocalDateTime createTime; @ApiModelProperty(value = "修改人") @TableField("update_by") private Long updateBy; @ApiModelProperty(value = "修改时间") @TableField("update_time") private LocalDateTime updateTime; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintFlow.java
New file @@ -0,0 +1,60 @@ package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.io.Serializable; import java.util.Date; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * 诉求流转记录表 * </p> * * @author * @since 2025-02-22 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("sgsb_complaint_flow") @ApiModel(value="ComplaintFlow对象", description="诉求流转记录表") public class ComplaintFlow implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键ID") @TableId(value = "id",type = IdType.ASSIGN_ID) private Long id; @ApiModelProperty(value = "主键ID") @TableId(value = "complaint_id") private Long complaintId; @ApiModelProperty(value = "处理层级: 1-市级,2-区县,3-街道,4-社区") @TableField("level") private Integer level; @ApiModelProperty(value = "处理单位名称") @TableField("name") private String name; @ApiModelProperty(value = "下派时间") @TableField("create_time") private Date createTime; @ApiModelProperty(value = "流转类型 0-上报 1-下派") @TableField("type") private Integer type; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintProgress.java
New file @@ -0,0 +1,67 @@ package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; import java.util.Date; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * * </p> * * @author * @since 2025-02-22 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("sgsb_complaint_progress") @ApiModel(value="ComplaintProgress对象", description="") public class ComplaintProgress implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键") @TableId(value = "id") private Long id; @ApiModelProperty(value = "诉求id") @TableField("complaint_id") private Long complaintId; @ApiModelProperty(value = "办理进度描述") @TableField("describe") private String describe; @ApiModelProperty(value = "图片url") @TableField("img_url") private String imgUrl; @ApiModelProperty(value = "视频url") @TableField("video") private String video; @ApiModelProperty(value = "创建时间") @TableField("create_time") private Date createTime; @ApiModelProperty(value = "创建人") @TableField("create_by") private Long createBy; @ApiModelProperty(value = "创建人") @TableField("create_by_name") private String createByName; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Department.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/Department.java @@ -1,4 +1,4 @@ package com.panzhihua.sangeshenbian.model; package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/MessageNotification.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/MessageNotification.java @@ -1,4 +1,4 @@ package com.panzhihua.sangeshenbian.model; package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ProblemType.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/ProblemType.java @@ -1,4 +1,4 @@ package com.panzhihua.sangeshenbian.model; package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemMenu.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/SystemMenu.java @@ -1,4 +1,4 @@ package com.panzhihua.sangeshenbian.model; package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRole.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/SystemRole.java @@ -1,4 +1,4 @@ package com.panzhihua.sangeshenbian.model; package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRoleMenu.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/SystemRoleMenu.java @@ -1,4 +1,4 @@ package com.panzhihua.sangeshenbian.model; package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemUser.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/SystemUser.java @@ -1,4 +1,4 @@ package com.panzhihua.sangeshenbian.model; package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/WorkOrderItemConfig.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/WorkOrderItemConfig.java @@ -1,4 +1,4 @@ package com.panzhihua.sangeshenbian.model; package com.panzhihua.sangeshenbian.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/BasePage.java
New file @@ -0,0 +1,19 @@ package com.panzhihua.sangeshenbian.model.query; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author mitao * @date 2025/2/23 */ @Data public class BasePage { @ApiModelProperty(value = "当前页数", example = "1") private Long pageNum = 1L; @ApiModelProperty(value = "每页记录数", example = "10") private Long pageSize = 10L; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/ComplaintQuery.java
New file @@ -0,0 +1,18 @@ package com.panzhihua.sangeshenbian.model.query; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author mitao * @date 2025/2/23 */ @Data @ApiModel("工单查询数据传输对象") public class ComplaintQuery extends BasePage{ @ApiModelProperty("全部:不传,上报待审核:0,正在办理:1, 办结:2") private Integer type; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java
New file @@ -0,0 +1,30 @@ package com.panzhihua.sangeshenbian.model.vo; import com.panzhihua.common.model.vos.common.SysUserVo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.checkerframework.checker.units.qual.A; import java.util.Date; /** * @author mitao * @date 2025/2/23 */ @Data @ApiModel("待办述求视图对象") public class ComplaintTodoVO extends SysUserVo { @ApiModelProperty("诉求id") private Long id; @ApiModelProperty("用户头像") private String imageUrl; @ApiModelProperty("诉求标题") private String descriptionTitle; @ApiModelProperty("最终处理期限") private Date closingTime; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java
New file @@ -0,0 +1,39 @@ package com.panzhihua.sangeshenbian.model.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.panzhihua.sangeshenbian.model.entity.Complaint; import com.panzhihua.sangeshenbian.model.entity.ComplaintFlow; import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; import java.util.List; /** * @author mitao * @date 2025/2/23 */ @Data @ApiModel("工单视图对象") public class ComplaintVO extends Complaint { @ApiModelProperty(value = "上报人") private String reportName; @ApiModelProperty(value = "所属部门") private String departmentName; @ApiModelProperty(value = "上报提交时间") private Date reportTime; @ApiModelProperty(value = "上报说明") private String comment; @ApiModelProperty(value = "诉求流转记录") List<ComplaintFlow> complaintFlows; @ApiModelProperty(value = "办理进度") List<ComplaintProgress> complaintProgresses; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/DispatchVO.java
New file @@ -0,0 +1,14 @@ package com.panzhihua.sangeshenbian.model.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("下派单位") public class DispatchVO { @ApiModelProperty(value = "下派单位id") private Long id; @ApiModelProperty(value = "下派单位名称") private String name; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java
New file @@ -0,0 +1,75 @@ package com.panzhihua.sangeshenbian.model.vo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDateTime; /** * @author mitao * @date 2025/2/23 */ @Data @ApiModel("消息通知视图对象") public class MessageNotificationVO { /** * 数据ID */ @ApiModelProperty("数据ID") private Integer id; /** * 标题 */ @ApiModelProperty("标题") private String title; /** * 承办者用户id */ @ApiModelProperty("承办者用户id") private Integer undertakerUserId; /** * 承办者 */ @ApiModelProperty("承办者") private String undertakerUser; /** * 联系电话 */ @TableField("phone") @ApiModelProperty("联系电话") private String phone; /** * 所在单位 */ @ApiModelProperty(value = "所在单位") private String department; /** * 所属职位 */ @ApiModelProperty("所属职位") private String position; /** * 需求应处理时间 */ @ApiModelProperty("需求应处理时间") private LocalDateTime responseTime; /** * 提示类型(1=临期提醒,2=超时提醒) */ @ApiModelProperty("提示类型(1=临期提醒,2=超时提醒)") private Integer promptType; /** * 阅读状态(0=否,1=是) */ @ApiModelProperty("阅读状态(0=否,1=是)") private Integer readStatus; /** * 创建时间 */ @ApiModelProperty("创建时间") private LocalDateTime createTime; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java
New file @@ -0,0 +1,24 @@ package com.panzhihua.sangeshenbian.model.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import net.bytebuddy.implementation.bind.annotation.Pipe; /** * @author mitao * @date 2025/2/23 */ @Data @ApiModel("党员证信息") public class PartyCardInfoVO { @ApiModelProperty(value = "姓名") private String name; @ApiModelProperty(value = "身份证号码") private String idCard; @ApiModelProperty(value = "所在党组织") private String partyOrganization; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.sangeshenbian.scheduled; import com.panzhihua.sangeshenbian.service.IComplaintService; import lombok.RequiredArgsConstructor; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component @RequiredArgsConstructor public class ComplaintTasks { private final IComplaintService complaintService; /** * 诉求超时处理 */ @Scheduled(fixedRate = 60000) public void complaintTimeout() { complaintService.list() } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBannerService.java
@@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.Banner; import com.panzhihua.sangeshenbian.model.entity.Banner; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBcRegionService.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.service; import com.panzhihua.sangeshenbian.model.entity.BcRegion; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 行政区划表 服务类 * </p> * * @author * @since 2025-02-23 */ public interface IBcRegionService extends IService<BcRegion> { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComActService.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.service; import com.panzhihua.sangeshenbian.model.entity.ComAct; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 社区表 服务类 * </p> * * @author * @since 2025-02-23 */ public interface IComActService extends IService<ComAct> { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComStreetService.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.service; import com.panzhihua.sangeshenbian.model.entity.ComStreet; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 街道表 服务类 * </p> * * @author * @since 2025-02-23 */ public interface IComStreetService extends IService<ComStreet> { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintAuditRecordService.java
New file @@ -0,0 +1,23 @@ package com.panzhihua.sangeshenbian.service; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 诉求上报、延期申请审核表 服务类 * </p> * * @author * @since 2025-02-23 */ public interface IComplaintAuditRecordService extends IService<ComplaintAuditRecord> { // 创建审核记录 void createComplaintAuditRecord(Long complaintId, Integer auditType, String comment, Long userId); // 审核 void audit(Long id, Long userId, Integer auditResult, String rejectReason); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintFlowService.java
New file @@ -0,0 +1,19 @@ package com.panzhihua.sangeshenbian.service; import com.panzhihua.sangeshenbian.model.entity.Complaint; import com.panzhihua.sangeshenbian.model.entity.ComplaintFlow; import com.baomidou.mybatisplus.extension.service.IService; import java.util.Date; /** * <p> * 诉求流转记录表 服务类 * </p> * * @author * @since 2025-02-22 */ public interface IComplaintFlowService extends IService<ComplaintFlow> { void createFlow(Long complaintId,Integer type, Long userId); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintProgressService.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.sangeshenbian.service; import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 服务类 * </p> * * @author * @since 2025-02-22 */ public interface IComplaintProgressService extends IService<ComplaintProgress> { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
New file @@ -0,0 +1,111 @@ package com.panzhihua.sangeshenbian.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.sangeshenbian.model.dto.ComplaintCompletionDTO; import com.panzhihua.sangeshenbian.model.dto.ComplaintProcessDTO; import com.panzhihua.sangeshenbian.model.dto.*; import com.panzhihua.sangeshenbian.model.entity.Complaint; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord; import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; import com.panzhihua.sangeshenbian.model.query.BasePage; import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO; import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; import com.panzhihua.sangeshenbian.model.vo.DispatchVO; import java.util.List; /** * <p> * 问题报告表 服务类 * </p> * * @author * @since 2025-02-22 */ public interface IComplaintService extends IService<Complaint> { void saveComplaint(Complaint complaint,Long userId); /** * 诉求列表 * * @param query * @param loginUserInfoVO * @return */ Page<ComplaintVO> complaintList(ComplaintQuery query, LoginUserInfoVO loginUserInfoVO); /** * 工单详情 * @param id * @return */ ComplaintVO detail(Long id); /** * 保存办理进度 * * @param dto * @param loginUserInfoVO */ void saveProcess(ComplaintProcessDTO dto, LoginUserInfoVO loginUserInfoVO); /** * 办理结果录入 * * @param dto * @param loginUserInfoVO */ void saveResult(ComplaintCompletionDTO dto, LoginUserInfoVO loginUserInfoVO); /** * 办理进度列表 * @param complaintId * @return */ List<ComplaintProgress> progress(Long complaintId); /** * 诉求上报 */ void saveReport(ComplaintReportDTO dto, LoginUserInfoVO loginUserInfoVO); /** * 诉求下派 */ void saveDispatch(ComplaintDispatch dto, LoginUserInfoVO loginUserInfoVO); /** * 上报审核 * @param complaintReporAuditDTO * @param loginUserInfoVO */ void reportAudit(ComplaintReporAuditDTO complaintReporAuditDTO, LoginUserInfoVO loginUserInfoVO); /** * 延期申请 */ void saveDelay(ComplaintDelayDTO dto, LoginUserInfoVO loginUserInfoVO); /** * 延期审核 */ void delayAudit(ComplaintDelayAuditDTO complaintDelayAuditDTO, LoginUserInfoVO loginUserInfoVO); List<DispatchVO> getDispatchList(LoginUserInfoVO loginUserInfoVO); /** * 获取待办诉求 * @param page * @param loginUserInfo * @return */ Page<ComplaintTodoVO> getTodoList(BasePage page, LoginUserInfoVO loginUserInfo); /** * 延期情况说明 * @param complaintId * @return */ ComplaintAuditRecord delayDetail(Long complaintId); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IDepartmentService.java
@@ -1,7 +1,7 @@ package com.panzhihua.sangeshenbian.service; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.Department; import com.panzhihua.sangeshenbian.model.entity.Department; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java
@@ -1,8 +1,11 @@ package com.panzhihua.sangeshenbian.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.MessageNotification; import com.panzhihua.sangeshenbian.model.entity.MessageNotification; import com.panzhihua.sangeshenbian.model.query.BasePage; import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO; import com.panzhihua.sangeshenbian.warpper.MessageNotificationList; /** @@ -13,4 +16,6 @@ IPage<MessageNotification> list(MessageNotificationList query); Page<MessageNotificationVO> getMessageList(BasePage page, Long userId); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IProblemTypeService.java
@@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.ProblemType; import com.panzhihua.sangeshenbian.model.entity.ProblemType; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemMenuService.java
@@ -1,7 +1,7 @@ package com.panzhihua.sangeshenbian.service; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.SystemMenu; import com.panzhihua.sangeshenbian.model.entity.SystemMenu; import java.util.List; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleMenuService.java
@@ -1,7 +1,7 @@ package com.panzhihua.sangeshenbian.service; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.SystemRoleMenu; import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleService.java
@@ -2,11 +2,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.SystemRole; import com.panzhihua.sangeshenbian.model.entity.SystemRole; import com.panzhihua.sangeshenbian.warpper.SystemRoleList; import com.panzhihua.sangeshenbian.warpper.SystemRoleListVo; import java.util.List; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemUserService.java
@@ -2,11 +2,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.SystemUser; import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.warpper.SystemUserList; import com.panzhihua.sangeshenbian.warpper.SystemUserListVo; import java.util.List; import java.util.Optional; /** * @author zhibing.pu @@ -20,4 +21,9 @@ * @return */ IPage<SystemUserListVo> list(Integer accountLevel, SystemUserList query); /** * 根据手机号码查询小程序用户在三个身边的上级角色用户 */ Optional<SystemUser> getSystemUserByPhone(String phone); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IWorkOrderItemConfigService.java
@@ -1,7 +1,7 @@ package com.panzhihua.sangeshenbian.service; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.WorkOrderItemConfig; import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BannerServiceImpl.java
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.sangeshenbian.dao.BannerMapper; import com.panzhihua.sangeshenbian.model.Banner; import com.panzhihua.sangeshenbian.model.entity.Banner; import com.panzhihua.sangeshenbian.service.IBannerService; import org.springframework.stereotype.Service; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BcRegionServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.sangeshenbian.service.impl; import com.panzhihua.sangeshenbian.model.entity.BcRegion; import com.panzhihua.sangeshenbian.dao.BcRegionMapper; import com.panzhihua.sangeshenbian.service.IBcRegionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 行政区划表 服务实现类 * </p> * * @author * @since 2025-02-23 */ @Service public class BcRegionServiceImpl extends ServiceImpl<BcRegionMapper, BcRegion> implements IBcRegionService { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComActServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.sangeshenbian.service.impl; import com.panzhihua.sangeshenbian.model.entity.ComAct; import com.panzhihua.sangeshenbian.dao.ComActMapper; import com.panzhihua.sangeshenbian.service.IComActService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 社区表 服务实现类 * </p> * * @author * @since 2025-02-23 */ @Service public class ComActServiceImpl extends ServiceImpl<ComActMapper, ComAct> implements IComActService { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComStreetServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.sangeshenbian.service.impl; import com.panzhihua.sangeshenbian.model.entity.ComStreet; import com.panzhihua.sangeshenbian.dao.ComStreetMapper; import com.panzhihua.sangeshenbian.service.IComStreetService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 街道表 服务实现类 * </p> * * @author * @since 2025-02-23 */ @Service public class ComStreetServiceImpl extends ServiceImpl<ComStreetMapper, ComStreet> implements IComStreetService { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintAuditRecordServiceImpl.java
New file @@ -0,0 +1,48 @@ package com.panzhihua.sangeshenbian.service.impl; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord; import com.panzhihua.sangeshenbian.dao.ComplaintAuditRecordMapper; import com.panzhihua.sangeshenbian.service.IComplaintAuditRecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 诉求上报、延期申请审核表 服务实现类 * </p> * * @author * @since 2025-02-23 */ @Service public class ComplaintAuditRecordServiceImpl extends ServiceImpl<ComplaintAuditRecordMapper, ComplaintAuditRecord> implements IComplaintAuditRecordService { @Override public void createComplaintAuditRecord(Long complaintId, Integer auditType, String comment, Long userId) { ComplaintAuditRecord auditRecord = new ComplaintAuditRecord(); auditRecord.setComplaintId(complaintId); auditRecord.setLatestFlag(true); auditRecord.setAuditType(1); auditRecord.setAuditStatus(0); auditRecord.setComment(comment); auditRecord.setCreateBy(userId); auditRecord.setCreateTime(DateUtils.getCurrentDate()); auditRecord.setUpdateBy(userId); auditRecord.setUpdateTime(DateUtils.getCurrentDate()); save(auditRecord); } @Override public void audit(Long id, Long userId, Integer auditResult, String rejectReason) { ComplaintAuditRecord auditRecord = getById(id); if (auditRecord == null) { throw new RuntimeException("审核记录不存在"); } auditRecord.setAuditStatus(auditResult); auditRecord.setRejectReason(rejectReason); auditRecord.setUpdateBy(userId); auditRecord.setUpdateTime(DateUtils.getCurrentDate()); save(auditRecord); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintFlowServiceImpl.java
New file @@ -0,0 +1,67 @@ package com.panzhihua.sangeshenbian.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.sangeshenbian.enums.ReportTypeEnum; import com.panzhihua.sangeshenbian.model.entity.*; import com.panzhihua.sangeshenbian.dao.ComplaintFlowMapper; import com.panzhihua.sangeshenbian.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; /** * <p> * 诉求流转记录表 服务实现类 * </p> * * @author * @since 2025-02-22 */ @Service @RequiredArgsConstructor(onConstructor = @__(@Autowired)) public class ComplaintFlowServiceImpl extends ServiceImpl<ComplaintFlowMapper, ComplaintFlow> implements IComplaintFlowService { private final IComplaintService complaintService; private final IBcRegionService bcRegionService; private final IComStreetService comStreetService; private final IComActService comActService; @Override public void createFlow(Long complaintId , Integer type, Long userId) { Complaint complaint = complaintService.getById(complaintId); Integer reportType = complaint.getReportType(); String name = getFlowName(reportType, complaint); ComplaintFlow complaintFlow = new ComplaintFlow(); complaintFlow.setComplaintId(complaintId); complaintFlow.setLevel(reportType); complaintFlow.setName(name); complaintFlow.setCreateTime(new Date(System.currentTimeMillis())); complaintFlow.setType(type); save(complaintFlow); } private String getFlowName(Integer reportType, Complaint complaint) { String name; if (reportType == ReportTypeEnum.COMMUNITY.getCode()) { ComAct byId = comActService.getById(complaint.getSuperiorId()); name = byId.getName(); }else if (reportType == ReportTypeEnum.STREET.getCode()) { ComStreet comStreet = comStreetService.getById(complaint.getSuperiorId()); name = comStreet.getName(); } else if (reportType == ReportTypeEnum.CITY.getCode() || reportType == ReportTypeEnum.DISTRICT.getCode()){ BcRegion bcRegion = bcRegionService.getOne(new LambdaQueryWrapper<BcRegion>() .eq(BcRegion::getRegionCode, complaint.getSuperiorId())); name = bcRegion.getRegionName(); } else { // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); } return name; } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintProgressServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.sangeshenbian.service.impl; import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; import com.panzhihua.sangeshenbian.dao.ComplaintProgressMapper; import com.panzhihua.sangeshenbian.service.IComplaintProgressService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 服务实现类 * </p> * * @author * @since 2025-02-22 */ @Service public class ComplaintProgressServiceImpl extends ServiceImpl<ComplaintProgressMapper, ComplaintProgress> implements IComplaintProgressService { } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
New file @@ -0,0 +1,427 @@ package com.panzhihua.sangeshenbian.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.sangeshenbian.model.dto.ComplaintCompletionDTO; import com.panzhihua.sangeshenbian.model.dto.ComplaintProcessDTO; import com.panzhihua.sangeshenbian.model.entity.Complaint; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.sangeshenbian.enums.ReportTypeEnum; import com.panzhihua.sangeshenbian.model.dto.*; import com.panzhihua.sangeshenbian.model.entity.*; import com.panzhihua.sangeshenbian.enums.ProcessStatusEnum; import com.panzhihua.sangeshenbian.dao.ComplaintMapper; import com.panzhihua.sangeshenbian.model.entity.ComplaintFlow; import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.model.query.BasePage; import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO; import com.panzhihua.sangeshenbian.service.IComplaintFlowService; import com.panzhihua.sangeshenbian.service.IComplaintProgressService; import com.panzhihua.sangeshenbian.service.IComplaintService; import com.panzhihua.sangeshenbian.model.vo.DispatchVO; import com.panzhihua.sangeshenbian.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; import com.panzhihua.sangeshenbian.service.ISystemUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Optional; import static cn.hutool.core.util.ObjectUtil.isNull; /** * <p> * 问题报告表 服务实现类 * </p> * * @author * @since 2025-02-22 */ @Service @RequiredArgsConstructor public class ComplaintServiceImpl extends ServiceImpl<ComplaintMapper, Complaint> implements IComplaintService { private final ISystemUserService systemUserService; private final IComplaintFlowService complaintFlowService; private final IComplaintProgressService complaintProgressService; private final IComplaintAuditRecordService complaintAuditRecordService; private final IBcRegionService bcRegionService; private final IComStreetService comStreetService; private final IComActService comActService; @Override public void saveComplaint(Complaint complaint, Long userId) { // 获取当前日期(年月日) String datePrefix = new SimpleDateFormat("yyyyMMdd").format(new Date()); // 查询当前日期的最大流水号 Complaint lastComplaint = getOne(new LambdaQueryWrapper<Complaint>() .likeRight(Complaint::getSerialNumber, datePrefix) // 查询以当前日期开头的流水号 .orderByDesc(Complaint::getSerialNumber) .last("limit 1")); String serialNumber; if (isNull(lastComplaint)) { // 如果当天没有记录,从 0001 开始 serialNumber = datePrefix + "0001"; } else { // 获取当前日期的最大流水号,并递增 String lastSerialNumber = lastComplaint.getSerialNumber(); int num = Integer.parseInt(lastSerialNumber.substring(lastSerialNumber.length() - 4)); // 提取后4位数字 serialNumber = datePrefix + String.format("%04d", num + 1); // 递增并格式化为4位 } // 设置流水号 complaint.setSerialNumber(serialNumber); // 设置其他字段 complaint.setStatus(ProcessStatusEnum.PROCESSING.getCode()); complaint.setCreateTime(new Date(System.currentTimeMillis())); complaint.setCreateBy(userId); complaint.setUpdateBy(userId); complaint.setUpdateTime(new Date(System.currentTimeMillis())); // 保存诉求记录 save(complaint); } /** * @param query * @param loginUserInfoVO * @return */ @Override public Page<ComplaintVO> complaintList(ComplaintQuery query, LoginUserInfoVO loginUserInfoVO) { Page<ComplaintVO> page = new Page<>(query.getPageNum(), query.getPageSize()); //判断当前登录用户级别,查询对应工单 Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserByPhone(loginUserInfoVO.getPhone()); String targetId = ""; int isSuperior = 0; //上级 if (systemUserByPhone.isPresent()) { SystemUser systemUser = systemUserByPhone.get(); Integer accountLevel = systemUser.getAccountLevel(); switch (accountLevel) { case 1: //市级 targetId = "510400"; break; case 2: //区县级 targetId = systemUser.getDistrictsCode(); break; case 3: //街道 targetId = systemUser.getStreetCode(); break; case 4: //社区 targetId = systemUser.getCommunityCode(); break; } isSuperior = 1; } else { //党员 targetId = loginUserInfoVO.getUserId().toString(); } //查询对应诉求 page = baseMapper.selectComplaintPage(page, query, targetId,isSuperior); return page; } /** * 工单详情 * @param id * @return */ @Override public ComplaintVO detail(Long id) { ComplaintVO detail = baseMapper.getDetail(id); if (detail.getStatus().equals(0)) { List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByAsc(ComplaintFlow::getCreateTime).list(); detail.setComplaintFlows(list); } //查询办理进度 List<ComplaintProgress> list = complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, id) .orderByAsc(ComplaintProgress::getCreateTime).list(); detail.setComplaintProgresses(list); return detail; } /** * 办理进度录入 * * @param dto * @param loginUserInfoVO */ @Override public void saveProcess(ComplaintProcessDTO dto, LoginUserInfoVO loginUserInfoVO) { ComplaintProgress complaintProgress = BeanUtil.copyProperties(dto, ComplaintProgress.class); complaintProgress.setCreateTime(new Date()); complaintProgress.setCreateBy(loginUserInfoVO.getUserId()); complaintProgress.setCreateByName(loginUserInfoVO.getName()); complaintProgressService.save(complaintProgress); } /** * 办理结果录入 * * @param dto * @param loginUserInfoVO */ @Override public void saveResult(ComplaintCompletionDTO dto, LoginUserInfoVO loginUserInfoVO) { Complaint complaint = BeanUtil.copyProperties(dto, Complaint.class); complaint.setUpdateTime(new Date()); complaint.setCompletionUserId(loginUserInfoVO.getUserId()); complaint.setCompletionUsername(loginUserInfoVO.getName()); complaint.setCompletionTime(new Date()); this.updateById(complaint); } /** * 办理进度列表 * @param complaintId * @return */ @Override public List<ComplaintProgress> progress(Long complaintId) { //查询办理进度 return complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, complaintId) .orderByAsc(ComplaintProgress::getCreateTime).list(); } @Override public void saveReport(ComplaintReportDTO dto, LoginUserInfoVO loginUserInfoVO) { String phone = loginUserInfoVO.getPhone(); SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>() .eq(SystemUser::getPhone, phone) .eq(SystemUser::getIsAdmin, 1) .eq(SystemUser::getStatus, 3) .last("LIMIT 1")); Long superiorId; int reportType; if (adminUser == null) { superiorId = loginUserInfoVO.getCommunityId(); reportType = ReportTypeEnum.COMMUNITY.getCode(); } else { int accountLevel = adminUser.getAccountLevel(); // 改为基本类型 if (accountLevel == 1) { throw new ServiceException("市级账号,无法上报!"); } reportType = accountLevel + 1; // 使用基本类型比较并补充默认分支 if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) { superiorId = Long.parseLong(adminUser.getStreetCode()); } else if (accountLevel == ReportTypeEnum.STREET.getCode()) { superiorId = Long.parseLong(adminUser.getDistrictsCode()); } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { superiorId = 510400L; // 攀枝花市 } else { // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); } } Complaint complaint = getById(dto.getComplaintId()); complaint.setReportType(reportType); complaint.setSuperiorId(superiorId); updateById(complaint); // 标记最新 complaintAuditRecordService.update(new LambdaUpdateWrapper<ComplaintAuditRecord>() .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId()) .set(ComplaintAuditRecord::getLatestFlag,false)); // 添加审核记录 complaintAuditRecordService.createComplaintAuditRecord(dto.getComplaintId(), 2, dto.getComment(), loginUserInfoVO.getUserId()); } @Override public void saveDispatch(ComplaintDispatch dto, LoginUserInfoVO loginUserInfoVO) { String phone = loginUserInfoVO.getPhone(); SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>() .eq(SystemUser::getPhone, phone) .eq(SystemUser::getIsAdmin, 1) .eq(SystemUser::getStatus, 3) .last("LIMIT 1")); if (adminUser == null) { throw new ServiceException("无权下派"); } long superiorId; int reportType; int accountLevel = adminUser.getAccountLevel(); // 改为基本类型 if (accountLevel == 1) { throw new ServiceException("市级账号,无法上报!"); } reportType = accountLevel - 1; // 使用基本类型比较并补充默认分支 if (accountLevel == ReportTypeEnum.STREET.getCode()) { superiorId = Long.parseLong(adminUser.getCommunityCode()); } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { superiorId = Long.parseLong(adminUser.getStreetCode()); } else if (accountLevel == ReportTypeEnum.CITY.getCode()) { superiorId = Long.parseLong(adminUser.getDistrictsCode()); } else { // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); } Complaint complaint = getById(dto.getComplaintId()); complaint.setReportType(reportType); complaint.setSuperiorId(superiorId); updateById(complaint); // 添加流转记录 complaintFlowService.createFlow(dto.getComplaintId(), 1, loginUserInfoVO.getUserId()); } @Override public void reportAudit(ComplaintReporAuditDTO complaintReporAuditDTO, LoginUserInfoVO loginUserInfoVO) { complaintAuditRecordService.audit(complaintReporAuditDTO.getId(), loginUserInfoVO.getUserId(), complaintReporAuditDTO.getAuditResult(), complaintReporAuditDTO.getRejectReason()); // 添加流转记录 ComplaintAuditRecord complaintAuditRecord = complaintAuditRecordService.getById(complaintReporAuditDTO.getId()); complaintFlowService.createFlow(complaintAuditRecord.getComplaintId(), 0, loginUserInfoVO.getUserId()); } @Override public void saveDelay(ComplaintDelayDTO dto, LoginUserInfoVO loginUserInfoVO) { // 标记最新 complaintAuditRecordService.update(new LambdaUpdateWrapper<ComplaintAuditRecord>() .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId()) .set(ComplaintAuditRecord::getLatestFlag,false)); // 添加审核记录 complaintAuditRecordService.createComplaintAuditRecord(dto.getComplaintId(), 1, dto.getComment(), loginUserInfoVO.getUserId()); } @Override public void delayAudit(ComplaintDelayAuditDTO complaintDelayAuditDTO, LoginUserInfoVO loginUserInfoVO) { complaintAuditRecordService.audit(complaintDelayAuditDTO.getId(), loginUserInfoVO.getUserId(), complaintDelayAuditDTO.getAuditResult(), complaintDelayAuditDTO.getRejectReason()); } @Override public List<DispatchVO> getDispatchList(LoginUserInfoVO loginUserInfoVO) { String phone = loginUserInfoVO.getPhone(); SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>() .eq(SystemUser::getPhone, phone) .eq(SystemUser::getIsAdmin, 1) .eq(SystemUser::getStatus, 3) .last("LIMIT 1")); if (adminUser == null) { throw new ServiceException("无权下派"); } int accountLevel = adminUser.getAccountLevel(); // 改为基本类型 if (accountLevel == 1) { throw new ServiceException("市级账号,无法上报!"); } // 使用基本类型比较并补充默认分支 List<DispatchVO> dispatchVOList = new ArrayList<>(); if (accountLevel == ReportTypeEnum.STREET.getCode()) { List<ComAct> list = comActService.list(); for (ComAct comAct : list) { DispatchVO dispatchVO = new DispatchVO(); dispatchVO.setId(comAct.getCommunityId()); dispatchVO.setName(comAct.getName()); dispatchVOList.add(dispatchVO); } } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { List<ComStreet> list = comStreetService.list(); for (ComStreet street : list) { DispatchVO dispatchVO = new DispatchVO(); dispatchVO.setId(Long.valueOf(street.getStreetId())); dispatchVO.setName(street.getName()); dispatchVOList.add(dispatchVO); } } else if (accountLevel == ReportTypeEnum.CITY.getCode()) { List<BcRegion> list = bcRegionService.list(new LambdaQueryWrapper<BcRegion>() .eq(BcRegion::getHierarchyOrder, 3)); for (BcRegion region : list) { DispatchVO dispatchVO = new DispatchVO(); dispatchVO.setId(Long.valueOf(region.getRegionCode())); dispatchVO.setName(region.getRegionName()); dispatchVOList.add(dispatchVO); } } else { // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); } return dispatchVOList; } /** * 获取待办诉求 * @param basePage * @param loginUserInfo * @return */ @Override public Page<ComplaintTodoVO> getTodoList(BasePage basePage, LoginUserInfoVO loginUserInfo) { Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserByPhone(loginUserInfo.getPhone()); String targetId = ""; int isSuperior = 0; //上级 if (systemUserByPhone.isPresent()) { SystemUser systemUser = systemUserByPhone.get(); Integer accountLevel = systemUser.getAccountLevel(); switch (accountLevel) { case 1: //市级 targetId = "510400"; break; case 2: //区县级 targetId = systemUser.getDistrictsCode(); break; case 3: //街道 targetId = systemUser.getStreetCode(); break; case 4: //社区 targetId = systemUser.getCommunityCode(); break; } isSuperior = 1; } else { //党员 targetId = loginUserInfo.getUserId().toString(); } Page<ComplaintTodoVO> page = baseMapper.getTodoList(new Page<>(basePage.getPageNum(), basePage.getPageSize()), targetId,isSuperior); return page; } /** * 延期情况说明 * @param complaintId * @return */ @Override public ComplaintAuditRecord delayDetail(Long complaintId) { return complaintAuditRecordService.lambdaQuery().eq(ComplaintAuditRecord::getComplaintId, complaintId) .eq(ComplaintAuditRecord::getAuditType, 1) .eq(ComplaintAuditRecord::getLatestFlag, true) .last("LIMIT 1").one(); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/DepartmentServiceImpl.java
@@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.sangeshenbian.dao.DepartmentMapper; import com.panzhihua.sangeshenbian.model.Department; import com.panzhihua.sangeshenbian.model.entity.Department; import com.panzhihua.sangeshenbian.service.IDepartmentService; import org.springframework.stereotype.Service; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java
@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.sangeshenbian.dao.MessageNotificationMapper; import com.panzhihua.sangeshenbian.model.MessageNotification; import com.panzhihua.sangeshenbian.model.entity.MessageNotification; import com.panzhihua.sangeshenbian.model.query.BasePage; import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO; import com.panzhihua.sangeshenbian.service.IMessageNotificationService; import com.panzhihua.sangeshenbian.warpper.MessageNotificationList; import org.springframework.stereotype.Service; @@ -25,4 +27,11 @@ IPage<MessageNotification> list = this.baseMapper.list(page, query); return list; } @Override public Page<MessageNotificationVO> getMessageList(BasePage basePage, Long userId) { //TODO 待完善 Page<MessageNotificationVO> page = new Page<>(basePage.getPageNum(),basePage.getPageSize()); return page; } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ProblemTypeServiceImpl.java
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.sangeshenbian.dao.ProblemTypeMapper; import com.panzhihua.sangeshenbian.model.ProblemType; import com.panzhihua.sangeshenbian.model.entity.ProblemType; import com.panzhihua.sangeshenbian.service.IProblemTypeService; import org.springframework.stereotype.Service; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemMenuServiceImpl.java
@@ -1,9 +1,8 @@ package com.panzhihua.sangeshenbian.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.sangeshenbian.dao.SystemMenuMapper; import com.panzhihua.sangeshenbian.model.SystemMenu; import com.panzhihua.sangeshenbian.model.entity.SystemMenu; import com.panzhihua.sangeshenbian.service.ISystemMenuService; import org.springframework.stereotype.Service; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleMenuServiceImpl.java
@@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.sangeshenbian.dao.SystemRoleMenuMapper; import com.panzhihua.sangeshenbian.model.SystemRoleMenu; import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu; import com.panzhihua.sangeshenbian.service.ISystemRoleMenuService; import org.springframework.stereotype.Service; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleServiceImpl.java
@@ -4,13 +4,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.sangeshenbian.dao.SystemRoleMapper; import com.panzhihua.sangeshenbian.model.SystemRole; import com.panzhihua.sangeshenbian.model.entity.SystemRole; import com.panzhihua.sangeshenbian.service.ISystemRoleService; import com.panzhihua.sangeshenbian.warpper.SystemRoleList; import com.panzhihua.sangeshenbian.warpper.SystemRoleListVo; import org.springframework.stereotype.Service; import java.util.List; /** * @author zhibing.pu springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemUserServiceImpl.java
@@ -3,14 +3,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.sangeshenbian.dao.SystemUserMapper; import com.panzhihua.sangeshenbian.model.SystemUser; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.service.ISystemUserService; import com.panzhihua.sangeshenbian.warpper.SystemUserList; import com.panzhihua.sangeshenbian.warpper.SystemUserListVo; import org.springframework.stereotype.Service; import java.util.List; import java.util.Optional; /** * @author zhibing.pu @@ -32,4 +33,19 @@ IPage<SystemUserListVo> list = this.baseMapper.list(page, accountLevel, query); return list; } /** * 根据手机号码查询小程序用户在三个身边的上级角色用户 * @param phone * @return */ @Override public Optional<SystemUser> getSystemUserByPhone(String phone) { if (StringUtils.isBlank(phone)) { return Optional.empty(); } return this.lambdaQuery() .eq(SystemUser::getPhone, phone).ne(SystemUser::getStatus, 3) .eq(SystemUser::getIsAdmin, 1).last("LIMIT 1").oneOpt(); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/WorkOrderItemConfigServiceImpl.java
@@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.sangeshenbian.dao.WorkOrderItemConfigMapper; import com.panzhihua.sangeshenbian.model.WorkOrderItemConfig; import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig; import com.panzhihua.sangeshenbian.service.IWorkOrderItemConfigService; import org.springframework.stereotype.Service; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BannerMapper.xml
@@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.sangeshenbian.dao.BannerMapper"> <select id="list" resultType="com.panzhihua.sangeshenbian.model.Banner"> <select id="list" resultType="com.panzhihua.sangeshenbian.model.entity.Banner"> select * from banner where del = 0 <if test="name != null and name != ''"> and name like concat('%',#{name},'%') springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BcRegionMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.sangeshenbian.dao.BcRegionMapper"> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComActMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.sangeshenbian.dao.ComActMapper"> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComStreetMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.sangeshenbian.dao.ComStreetMapper"> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintAuditRecordMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.sangeshenbian.dao.ComplaintAuditRecordMapper"> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintFlowMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.sangeshenbian.dao.ComplaintFlowMapper"> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
New file @@ -0,0 +1,146 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.sangeshenbian.dao.ComplaintMapper"> <select id="selectComplaintPage" resultType="com.panzhihua.sangeshenbian.model.vo.ComplaintVO"> SELECT sc.id, sc.serial_number, sc.time, sc.problem_type, sc.name, sc.contact_number, sc.location, sc.detailed_address, sc.description_title, sc.description_content, sc.images, sc.videos, CASE WHEN scar.audit_type = 1 AND scar.audit_status = 1 THEN 5 WHEN scar.audit_type = 2 AND scar.audit_status = 2 THEN 6 ELSE sc.status END AS status, sc.report_type, sc.superior_id, sc.create_by, sc.create_time, sc.update_by, sc.update_time, sc.completion_description, sc.completion_images, sc.completion_videos, sc.completion_other_description, sc.completion_time, sc.completion_user_id, sc.completion_username, sc.completion_user_phone, sc.closing_time, sc.latitude, sc.longitude, scar.audit_type, scar.audit_status, scar.comment, scar.images, scar.videos, scar.create_time AS reportTime, scar.system_user_id, scar.name AS reportName, scar.department_name, scar.department_id FROM sgsb_complaint sc LEFT JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id AND scar.latest_flag = 1 <where> <if test="query.type ==null"> (scar.audit_type = 1 AND scar.audit_status = 1) OR (scar.audit_type = 2 AND scar.audit_status = 2) </if> <if test="isSuperior == 1 and targetId != null"> AND sc.superior_id = #{targetId} </if> <if test="isSuperior == 0 and targetId != null"> AND sc.create_by = #{targetId} </if> <if test="query.type!=null and query.type == 0"> AND scar.audit_type = 2 AND scar.audit_status = 2 </if> <if test="query.type!=null and query.type == 1"> AND sc.status = 0 </if> <if test="query.type!=null and query.type == 2"> AND sc.status = 3 </if> </where> ORDER BY sc.create_time DESC </select> <select id="getDetail" resultType="com.panzhihua.sangeshenbian.model.vo.ComplaintVO"> SELECT sc.id, sc.serial_number, sc.time, sc.problem_type, sc.name, sc.contact_number, sc.location, sc.detailed_address, sc.description_title, sc.description_content, sc.images, sc.videos, CASE WHEN scar.audit_type = 1 AND scar.audit_status = 1 THEN 5 WHEN scar.audit_type = 2 AND scar.audit_status = 2 THEN 6 ELSE sc.status END AS status, sc.report_type, sc.superior_id, sc.create_by, sc.create_time, sc.update_by, sc.update_time, sc.completion_description, sc.completion_images, sc.completion_videos, sc.completion_other_description, sc.completion_time, sc.completion_user_id, sc.completion_username, sc.completion_user_phone, sc.closing_time, sc.latitude, sc.longitude, scar.audit_type, scar.audit_status, scar.comment, scar.images, scar.videos, scar.create_time AS reportTime, scar.system_user_id, scar.name AS reportName, scar.department_name, scar.department_id, scar.comment FROM sgsb_complaint sc LEFT JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id AND scar.latest_flag = 1 WHERE sc.id = #{id} <where> sc.id = #{id} </where> </select> <select id="getTodoList" resultType="com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO"> SELECT sc.id, sc.description_title, sc.closing_time, su.image_url FROM sgsb_complaint sc LEFT JOIN sys_user su ON su.user_id = sc.create_by <where> sc.status = 0 <if test="isSuperior == 1 and targetId != null"> AND sc.superior_id = #{targetId} </if> <if test="isSuperior == 0 and targetId != null"> AND sc.create_by = #{targetId} </if> </where> ORDER BY sc.create_time DESC </select> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintProgressMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.sangeshenbian.dao.ComplaintProgressMapper"> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/MessageNotificationMapper.xml
@@ -5,7 +5,7 @@ <mapper namespace="com.panzhihua.sangeshenbian.dao.MessageNotificationMapper"> <select id="list" resultType="com.panzhihua.sangeshenbian.model.MessageNotification"> <select id="list" resultType="com.panzhihua.sangeshenbian.model.entity.MessageNotification"> select a.id, a.title, springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ProblemTypeMapper.xml
@@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.sangeshenbian.dao.ProblemTypeMapper"> <select id="list" resultType="com.panzhihua.sangeshenbian.model.ProblemType"> <select id="list" resultType="com.panzhihua.sangeshenbian.model.entity.ProblemType"> select * from sgsb_problem_type where del = 0 <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')