瀏覽代碼

处理因关闭任务导致的数据显示错误问题

wuweihao 2 年之前
父節點
當前提交
72317fac39

+ 1 - 8
gis_application/src/main/resources/application-dev.properties

@@ -2,16 +2,9 @@
 #DB
 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-#spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3307/zentaopro?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
-##spring.datasource.druid.url=jdbc:mysql://localhost:3306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
-#spring.datasource.druid.username=zentao
-#spring.datasource.druid.password=123456
 
-#spring.datasource.druid.url=jdbc:mysql://192.168.0.115:3309/zentao?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
-#spring.datasource.druid.username=root
-#spring.datasource.druid.password=123456
 
-spring.datasource.druid.url=jdbc:mysql://192.168.0.21:3306/zentao?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+spring.datasource.druid.url=jdbc:mysql://221.4.210.172:22264/zentao?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
 spring.datasource.druid.username=root
 spring.datasource.druid.password=4DAGE168
 

+ 2 - 6
gis_application/src/main/resources/application-pro.properties

@@ -2,14 +2,10 @@
 #DB
 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-#spring.datasource.druid.url=jdbc:mysql://localhost:3306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
-#spring.datasource.druid.username=root
-#spring.datasource.druid.password=4dkankan4dage
 
-spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3309/zentao?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
-#spring.datasource.druid.url=jdbc:mysql://192.168.0.115:3309/zentao?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+spring.datasource.druid.url=jdbc:mysql://192.168.0.21:3306/zentao?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
 spring.datasource.druid.username=root
-spring.datasource.druid.password=123456
+spring.datasource.druid.password=4DAGE168
 
 
 # \u521D\u59CB\u8FDE\u63A5\u6570

+ 8 - 0
gis_common/pom.xml

@@ -132,6 +132,14 @@
             <artifactId>pagehelper-spring-boot-starter</artifactId>
         </dependency>
 
+
+        <dependency>
+            <groupId>com.github.jsqlparser</groupId>
+            <artifactId>jsqlparser</artifactId>
+            <!--<version>4.2</version>-->
+            <version>1.4</version>
+        </dependency>
+
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>

+ 26 - 0
gis_domain/src/main/java/com/gis/domain/Bo/DateBo.java

@@ -0,0 +1,26 @@
+package com.gis.domain.Bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by owen on 2023/3/27 0027 9:15
+ *
+ */
+@Data
+public class DateBo {
+
+    /**
+     * 开始时间
+     * 需要用字符串接收
+     */
+    @ApiModelProperty(value = "开始时间", name = "startTime")
+    private String startTime;
+
+
+    @ApiModelProperty(value = "结束时间", name = "endTime")
+    private String endTime;
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+}

+ 29 - 0
gis_domain/src/main/java/com/gis/domain/dto/DateDto.java

@@ -0,0 +1,29 @@
+package com.gis.domain.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * Created by owen on 2023/3/27 0027 9:15
+ *
+ */
+@Data
+public class DateDto {
+
+    /**
+     * 开始时间
+     * 需要用字符串接收
+     */
+    @ApiModelProperty(value = "开始时间", name = "startTime")
+    private String startTime;
+
+
+    @ApiModelProperty(value = "结束时间", name = "endTime")
+    private String endTime;
+
+    @NotNull(message = "项目id不能为空")
+    @ApiModelProperty(value = "对象ID", required = true)
+    private Long id;
+}

+ 8 - 0
gis_domain/src/main/java/com/gis/domain/entity/ProjectEntity.java

@@ -27,9 +27,11 @@ public class ProjectEntity extends ZtBaseEntity implements Serializable {
     @ApiModelProperty(value = "项目号")
     private String code;
 
+//    @Column(name = "begin")
     @ApiModelProperty(value = "开始日期,yyyy-MM-dd")
     private String begin;
 
+//    @Column(name = "end")
     @ApiModelProperty(value = "结束日期,yyyy-MM-dd")
     private String end;
 
@@ -44,6 +46,12 @@ public class ProjectEntity extends ZtBaseEntity implements Serializable {
     @ApiModelProperty(value = "创建人")
     private String openedBy;
 
+    @ApiModelProperty(value = "创建时间")
+    @Column(name = "openedDate")
+//    @Temporal(TemporalType.TIMESTAMP)
+//    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+    private String openedDate;
+
 
 
 

+ 17 - 0
gis_domain/src/main/java/com/gis/domain/vo/CountVo.java

@@ -0,0 +1,17 @@
+package com.gis.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by owen on 2022/12/13 0013 19:38
+ */
+@Data
+public class CountVo {
+
+    @ApiModelProperty(value = "名称" )
+    private String groupKey;
+
+    @ApiModelProperty(value = "数量")
+    private Integer pcs;
+}

+ 0 - 1
gis_mapper/src/main/java/com/gis/mapper/ProductMapper.java

@@ -2,7 +2,6 @@ package com.gis.mapper;
 
 
 import com.gis.domain.entity.ProductEntity;
-import com.gis.domain.entity.ProjectEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Component;
 

+ 8 - 0
gis_mapper/src/main/java/com/gis/mapper/ProjectMapper.java

@@ -1,14 +1,22 @@
 package com.gis.mapper;
 
 
+import com.gis.common.mapper.BaseProvider;
 import com.gis.domain.entity.ProjectEntity;
+import com.gis.domain.vo.CountVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.SelectProvider;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
 
 @Component
 @Mapper
 public interface ProjectMapper extends ZtBaseMapper<ProjectEntity, Long> {
 
+    @SelectProvider(type = BaseProvider.class, method = "selectSql")
+    List<CountVo> countSql(String sqlStr);
+
+
 
 }

+ 1 - 1
gis_mapper/src/main/java/com/gis/mapper/UserMapper.java

@@ -13,6 +13,6 @@ import java.util.List;
 @Mapper
 public interface UserMapper extends ZtBaseMapper<UserEntity, Long> {
 
-    @Select("select * from zt_user where deleted='0'")
+    @Select("select * from zt_user where deleted='0' ")
     List<UserEntity> getList();
 }

+ 5 - 1
gis_service/src/main/java/com/gis/service/ProjectService.java

@@ -2,6 +2,8 @@ package com.gis.service;
 
 
 import com.gis.common.util.Result;
+import com.gis.domain.dto.DateDto;
+import com.gis.domain.dto.PageDateDto;
 import com.gis.domain.entity.ProjectEntity;
 import com.gis.domain.dto.PageDto;
 
@@ -12,5 +14,7 @@ import com.gis.domain.dto.PageDto;
 public interface ProjectService extends IBaseService<ProjectEntity, Long> {
 
 
-    Result<ProjectEntity> search(PageDto param);
+    Result<ProjectEntity> search(PageDateDto param);
+
+    Result totalByDept(DateDto param);
 }

+ 2 - 0
gis_service/src/main/java/com/gis/service/UserService.java

@@ -13,4 +13,6 @@ public interface UserService extends IBaseService<UserEntity, Long> {
 
 
     Result<UserEntity> search(PageDto param);
+
+    Result getList();
 }

+ 3 - 0
gis_service/src/main/java/com/gis/service/ZtBaseService.java

@@ -1,5 +1,6 @@
 package com.gis.service;
 
+import com.gis.domain.dto.PageDto;
 import com.github.pagehelper.PageInfo;
 import tk.mybatis.mapper.entity.Condition;
 
@@ -44,4 +45,6 @@ public interface ZtBaseService<T, ID extends Serializable> {
 
     public abstract PageInfo<T> findAll(Condition condition, int pageNum, int pageSize, String orderBy);
 
+    public abstract PageInfo<T> pageAll(Condition condition, PageDto param, String orderBy);
+
 }

+ 77 - 3
gis_service/src/main/java/com/gis/service/impl/ProjectServiceImpl.java

@@ -1,7 +1,10 @@
 package com.gis.service.impl;
 
+import cn.hutool.core.util.StrUtil;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.util.Result;
+import com.gis.domain.dto.DateDto;
+import com.gis.domain.dto.PageDateDto;
 import com.gis.domain.entity.ProjectEntity;
 import com.gis.domain.dto.PageDto;
 import com.gis.mapper.ProjectMapper;
@@ -11,6 +14,7 @@ import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import tk.mybatis.mapper.entity.Condition;
 
 
 /**
@@ -33,9 +37,79 @@ public class ProjectServiceImpl extends ZtBaseServiceImpl<ProjectEntity, Long> i
 
 
     @Override
-    public Result<ProjectEntity> search(PageDto param) {
-        startPage(param);
-        return Result.success(new PageInfo<>(this.findAll()));
+    public Result<ProjectEntity> search(PageDateDto param) {
+//        startPage(param);
+//        return Result.success(new PageInfo<>(this.findAll()));
+        Condition condition = new Condition(ProjectEntity.class);
+
+        String startTime = param.getStartTime();
+        String endTime = param.getEndTime();
+        if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)){
+            condition.and().andBetween("begin", startTime, endTime);
+        }
+
+        String searchKey = param.getSearchKey();
+        if (StrUtil.isNotBlank(searchKey)){
+            searchKey = "%"+searchKey +"%";
+            condition.and().andLike("name", searchKey);
+        }
+//        condition.orderBy("")
+        return Result.success(this.pageAll(condition, param, "openedDate desc"));
+//        return Result.success(this.findAll(condition, param.getPageNum(), param.getPageSize(), "openedDate desc"));
+//        return Result.success(new PageInfo<>());
+    }
+
+//    @Override
+//    public Result totalByDept(DateDto param) {
+//        StringBuilder builder = new StringBuilder();
+//        builder.append("select ROUND(sum(d.consumed),0) as pcs, c.name as groupKey, c.id from zt_taskestimate d left join " +
+//                "zt_task a on a.id=d.task  left join zt_user b on a.assignedTo=b.account left join zt_dept c on c.id=b.dept");
+//        builder.append(" where a.project=").append(param.getId());
+//        builder.append(" and a.deleted='0'");
+//        String startTime = param.getStartTime();
+//        String endTime = param.getEndTime();
+//        if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)){
+//            builder.append(" and d.date between '").append(startTime).append("' and '").append(endTime).append("'");
+//        }
+//
+//        // 查询小于结束时间的数据
+//        if (StrUtil.isBlank(startTime) && StrUtil.isNotBlank(endTime)){
+//            builder.append(StrUtil.format(" and d.date <= '{}'", endTime));
+//        }
+//
+//
+//
+//        builder.append(" GROUP BY c.id");
+//
+//
+//
+//        return Result.success(entityMapper.countSql(builder.toString()));
+//    }
+
+    @Override
+    public Result totalByDept(DateDto param) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("select ROUND(sum(b.consumed),0) as pcs, d.name as groupKey from zt_task a left join zt_taskestimate b on a.id=b.task LEFT JOIN zt_user c on c.account=a.lastEditedBy left join zt_dept d on d.id=c.dept");
+        builder.append(" where a.project=").append(param.getId());
+        builder.append(" and a.deleted='0'");
+        String startTime = param.getStartTime();
+        String endTime = param.getEndTime();
+        if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)){
+            builder.append(" and b.date between '").append(startTime).append("' and '").append(endTime).append("'");
+        }
+
+        // 查询小于结束时间的数据
+        if (StrUtil.isBlank(startTime) && StrUtil.isNotBlank(endTime)){
+            builder.append(StrUtil.format(" and b.date <= '{}'", endTime));
+        }
+
+
+
+        builder.append(" GROUP BY d.id");
+
+
+
+        return Result.success(entityMapper.countSql(builder.toString()));
     }
 
 }

+ 7 - 0
gis_service/src/main/java/com/gis/service/impl/UserServiceImpl.java

@@ -42,4 +42,11 @@ public class UserServiceImpl extends ZtBaseServiceImpl<UserEntity, Long> impleme
 
         return Result.success(new PageInfo<>(list));
     }
+
+    @Override
+    public Result getList() {
+        return Result.success(entityMapper.getList());
+    }
+
+
 }

+ 8 - 0
gis_service/src/main/java/com/gis/service/impl/ZtBaseServiceImpl.java

@@ -146,6 +146,14 @@ public abstract class ZtBaseServiceImpl<T extends ZtBaseEntity, ID extends Seria
         return new PageInfo<>(this.findAll(condition));
     }
 
+    public PageInfo<T> pageAll(Condition condition, PageDto pageDto, String orderBy){
+        startPage(pageDto);
+        if (!StringUtils.isEmpty(orderBy)){
+            PageHelper.orderBy(orderBy);
+        }
+        return new PageInfo<>(this.findAll(condition));
+    }
+
     /**
      * 设置请求分页数据
      */

+ 1 - 1
gis_web/src/main/java/com/gis/web/controller/PersonalController.java

@@ -47,7 +47,7 @@ public class PersonalController extends BaseController {
     @ApiOperation(value = "用户列表")
     @GetMapping(value = "getUserList")
     public Result getUserList() {
-        return Result.success(userService.findAll());
+        return userService.getList();
     }
 
 

+ 54 - 0
gis_web/src/main/java/com/gis/web/controller/ProjectController.java

@@ -0,0 +1,54 @@
+package com.gis.web.controller;
+
+import com.gis.common.util.Result;
+import com.gis.domain.Bo.DateBo;
+import com.gis.domain.dto.*;
+import com.gis.domain.vo.DetailVo;
+import com.gis.domain.vo.MonthVo;
+import com.gis.mapper.MyBaseMapper;
+import com.gis.service.ProjectService;
+import com.gis.service.TaskesTimateService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+
+/**
+ * Created by owen on 2021/2/26 0026 11:57
+ *
+ */
+
+@Api(tags = "项目管理")
+@Slf4j
+@RequestMapping("/api/project")
+@RestController
+public class ProjectController extends BaseController {
+
+    @Autowired
+    ProjectService projectService;
+
+    @ApiOperation("列表-分页")
+    @PostMapping(value = "/pageList")
+    public Result pageList(@RequestBody PageDateDto param) {
+        return projectService.search(param);
+    }
+
+
+    @ApiOperation("统计各部门工时")
+    @PostMapping(value = "/totalByDept")
+    public Result totalByDept(@Valid @RequestBody DateDto param) {
+        return projectService.totalByDept(param);
+    }
+
+
+
+
+
+
+
+}

+ 6 - 0
pom.xml

@@ -241,6 +241,12 @@
                 <groupId>com.github.pagehelper</groupId>
                 <artifactId>pagehelper-spring-boot-starter</artifactId>
                 <version>${pagehelper.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <artifactId>jsqlparser</artifactId>
+                        <groupId>com.github.jsqlparser</groupId>
+                    </exclusion>
+                </exclusions>
             </dependency>
 
             <dependency>