wanghongzhi 1 năm trước cách đây
mục cha
commit
9fa51c7855

+ 36 - 0
easydo-chengfa/src/main/java/easydo/technology/config/WebJsonConverterConfig.java

@@ -0,0 +1,36 @@
+package easydo.technology.config;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.util.List;
+/*
+ * Long类型返回到前端js
+ * 出现丢失精度的问题解决方案
+ */
+
+@EnableWebMvc
+@Configuration
+public class WebJsonConverterConfig implements WebMvcConfigurer {
+    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
+        MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
+        ObjectMapper objectMapper = new ObjectMapper();
+        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+        SimpleModule simpleModule = new SimpleModule();
+        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
+        //null属性不序列化
+        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+        objectMapper.registerModule(simpleModule);
+        jackson2HttpMessageConverter.setObjectMapper(objectMapper);
+        converters.add(jackson2HttpMessageConverter);
+    }
+}

+ 29 - 0
easydo-chengfa/src/main/java/easydo/technology/controller/PurchaseController.java

@@ -346,6 +346,35 @@ public class PurchaseController {
         }
     }
 
+    @RequestMapping(value = "/getTongji")
+    public Object getTongji(@RequestBody Map<String, Object> map){
+        Map<String, Object> result = new HashMap<>();
+        Connection connection = null;
+        try {
+            connection = dataSource.getConnection();
+            String sql = "select sum(sign_amount) as sign_amount from purchase_contract";
+
+            Map<String, Object> paramMap = new HashMap<>();
+            PurchaseContract contract = jdbcClient.getJdbcModelByMap(paramMap, sql, PurchaseContract.class, connection);
+            result.put("contractAmount", contract.getSignAmount());
+
+            sql = "select sum(budget_amount) as budget_amount from purchase";
+            Purchase purchase = jdbcClient.getJdbcModelByMap(paramMap, sql, Purchase.class, connection);
+            result.put("purchaseAmount", purchase.getBudgetAmount());
+
+            sql = "select sum(bid_amount) as bid_amount,sum(control_amount) as control_amount from purchase_bid_notice";
+            PurchaseBidNotice bidNotice = jdbcClient.getJdbcModelByMap(paramMap, sql, PurchaseBidNotice.class, connection);
+            result.put("bidAmount", bidNotice.getBidAmount());
+            result.put("controlAmount", bidNotice.getControlAmount());
+
+            return new ResponseEntity<>(result, HttpStatus.OK);
+        } catch (Exception e) {
+            throw new BizException(e.getMessage());
+        } finally {
+            jdbcClient.finallyExecute(connection);
+        }
+    }
+
     public static void main(String[] args) {
         String viewSql = "SELECT\n" +
                 "`sir`.`id` AS `id`,\n" +

+ 5 - 1
easydo-chengfa/src/main/java/easydo/technology/controller/TestController.java

@@ -37,6 +37,7 @@ import easydo.technology.service.GLDMasterService;
 import easydo.technology.system.domain.SysDept;
 import easydo.technology.util.HttpClientUtil;
 import easydo.technology.utils.LocalDateUtil;
+import easydo.technology.utils.RedisUtils;
 import easydo.technology.utils.StringUtil;
 
 @RestController
@@ -50,6 +51,8 @@ public class TestController {
     GLDMasterService gldMasterService;
     @Resource
     private PasswordEncoder passwordEncoder;
+    @Resource
+    RedisUtils redisUtils;
 
     /*
      * public static void main(String[] args) {
@@ -109,7 +112,8 @@ public class TestController {
 
     @RequestMapping(value = "/getPage")
     public Object getPage() throws Exception {
-
+        redisUtils.set("test", "123456", 600);
+        System.out.println(redisUtils.get("test"));
         return "success";
     }
 

+ 1 - 0
easydo-chengfa/src/main/java/easydo/technology/model/Supplier.java

@@ -35,6 +35,7 @@ public class Supplier extends ZeroSpringFolder<Supplier> {
     private String businessScope;
     private String address;
     private String remark;
+    private String deptCode;
 
     private String contactIdCard;
     private String licenceDate;

+ 29 - 28
easydo-chengfa/src/main/resources/logback.xml

@@ -1,38 +1,39 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<configuration scan="true" scanPeriod="30 seconds" debug="false">
-    <contextName>elAdmin</contextName>
-    <property name="log.charset" value="UTF-8" />
-    <property name="log.pattern" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)" />
-
-    <!--输出到控制台-->
-    <appender name="console" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>logs/easydo-chengfa.log</file>
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-            <charset>${log.charset}</charset>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <property name="LOG_HOME" value="/usr/local/chengfa/logs" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>===%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) Line:%-3L - %gray(%msg%n)</pattern>
         </encoder>
-
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 每天滚动生成日志文件 -->
-            <fileNamePattern>logs/easydo-chengfa.%d{yyyy-MM-dd}.log</fileNamePattern>
-            <!-- 保留30天的日志 -->
-            <maxHistory>30</maxHistory>
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/easydo-chengfa-%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
         </rollingPolicy>
-    </appender>
-
-    <!--普通日志输出到控制台-->
-    <root level="INFO">
-        <appender-ref ref="console" />
-    </root>
-
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-            <charset>${log.charset}</charset>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>===%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) Line:%-3L - %gray(%msg%n)</pattern>
         </encoder>
+        <!--日志文件最大的大小-->
+        <!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
+        <!--<MaxFileSize>10MB</MaxFileSize>-->
+        <!--</triggeringPolicy>-->
     </appender>
-
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="DEBUG"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <!-- 日志输出级别 -->
     <root level="INFO">
         <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
     </root>
 </configuration>

+ 1 - 0
easydo-system/src/main/java/easydo/technology/system/domain/SysDept.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.fasterxml.jackson.annotation.JsonFormat;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 

+ 3 - 0
easydo-system/src/main/java/easydo/technology/system/dto/UserDto.java

@@ -6,6 +6,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Objects;
 import java.util.Set;
 
@@ -59,6 +60,8 @@ public class UserDto extends CommonDto {
 
     private String features;
 
+    private List<String> deptIdList;
+
     // //项目表的id
     // private Integer fpiId;
     //

+ 8 - 2
easydo-system/src/main/java/easydo/technology/system/security/rest/AuthorizationController.java

@@ -29,6 +29,7 @@ import easydo.technology.system.security.security.TokenProvider;
 import easydo.technology.system.security.service.OnlineUserService;
 import easydo.technology.system.security.service.dto.AuthUserDto;
 import easydo.technology.system.security.service.dto.JwtUserDto;
+import easydo.technology.system.service.DeptService;
 import easydo.technology.utils.*;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpStatus;
@@ -46,6 +47,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
@@ -65,8 +67,8 @@ public class AuthorizationController {
     private final OnlineUserService onlineUserService;
     private final TokenProvider tokenProvider;
     private final AuthenticationManagerBuilder authenticationManagerBuilder;
-    @Resource
-    private LoginProperties loginProperties;
+    private final DeptService deptService;
+    private final LoginProperties loginProperties;
 
     @Log("用户登录")
     @AnonymousPostMapping(value = "/login")
@@ -91,6 +93,10 @@ public class AuthorizationController {
         // 生成令牌
         String token = tokenProvider.createToken(authentication);
         final JwtUserDto jwtUserDto = (JwtUserDto) authentication.getPrincipal();
+        if (StringUtil.isNotEmpty(jwtUserDto.getUser().getDeptId())) {
+            List<String> childrenIdList = deptService.getChildrenIdList(jwtUserDto.getUser().getDeptId());
+            jwtUserDto.getUser().setDeptIdList(childrenIdList);
+        }
         // 保存在线信息
         onlineUserService.save(jwtUserDto, token, request);
         // 返回 token 与 用户信息

+ 3 - 2
easydo-system/src/main/java/easydo/technology/system/service/impl/DeptServiceImpl.java

@@ -359,7 +359,7 @@ public class DeptServiceImpl extends CommonServiceImpl<Dept> implements DeptServ
     @Override
     public List<String> getChildrenIdList(Long deptId) {
         String childrenIds = deptId.toString();
-        getChildrenIdsCopy(deptId, childrenIds);
+        childrenIds = getChildrenIdsCopy(deptId, childrenIds);
         String[] split = childrenIds.split(",");
         List<String> list = Arrays.asList(split);
         list = list.stream().distinct().collect(Collectors.toList());
@@ -385,7 +385,7 @@ public class DeptServiceImpl extends CommonServiceImpl<Dept> implements DeptServ
         }
     }
 
-    private void getChildrenIdsCopy(Long id, String childrenIds) {
+    private String getChildrenIdsCopy(Long id, String childrenIds) {
 
         List<Dept> deptList = this.findByPid(id);
         if (!deptList.isEmpty()) {
@@ -395,6 +395,7 @@ public class DeptServiceImpl extends CommonServiceImpl<Dept> implements DeptServ
                 getChildrenIdsCopy(projectId, childrenIds);
             }
         }
+        return childrenIds;
     }
 
 

+ 9 - 10
easydo-system/src/main/java/easydo/technology/system/service/impl/UserServiceImpl.java

@@ -63,7 +63,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     private final UsersRolesMapper usersRolesMapper;
     private final JdbcClient jdbcClient;
 
-
     @Override
     // @Cacheable
     public PageInfo<UserDto> queryAll(UserQueryParam query, Pageable pageable) {
@@ -71,7 +70,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         IPage<User> pageData = userMapper.selectPage(page, QueryHelpMybatisPlus.getPredicate(query));
         List<UserDto> userDtos = ConvertUtil.convertList(pageData.getRecords(), UserDto.class);
         if (pageData.getTotal() > 0) {
-            Map<Long, DeptDto> deptMap = deptService.queryAll().parallelStream()
+            List<DeptDto> deptDtos = deptService.queryAll();
+            Map<Long, DeptDto> deptMap = deptDtos.stream()
                     .collect(Collectors.toMap(DeptDto::getId, Function.identity(), (x, y) -> x));
 
             QueryWrapper<UsersRoles> userRoleWrapper = new QueryWrapper<>();
@@ -80,10 +80,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             Map<Long, Set<UsersRoles>> usersRolesMap = usersRolesMapper.selectList(userRoleWrapper).stream()
                     .collect(Collectors.groupingBy(UsersRoles::getUserId, Collectors.toSet()));
 
-           
-
-            userDtos.forEach(user -> {
-                user.setDept(ConvertUtil.convert(deptMap.get(user.getDeptId()), DeptSmallDto.class));
+            for (UserDto user : userDtos) {
+                DeptDto deptDto = deptMap.get(user.getDeptId());
+                DeptSmallDto deptSmallDto = ConvertUtil.convert(deptDto, DeptSmallDto.class);
+                user.setDept(deptSmallDto);
                 if (usersRolesMap.containsKey(user.getId())) {
                     user.setRoles(usersRolesMap.get(user.getId()).stream().map(ur -> {
                         RoleSmallDto role = new RoleSmallDto();
@@ -101,7 +101,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 }
                 user.setJobs(usersJobs.stream().map(ur -> {
                     JobSmallDto job = new JobSmallDto();
-                    job.setId((long)ur.getJobId());
+                    job.setId((long) ur.getJobId());
                     SysJob sysJob = new SysJob();
                     sysJob.setId(ur.getJobId());
                     try {
@@ -112,7 +112,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                     job.setName(sysJob.getName());
                     return job;
                 }).collect(Collectors.toSet()));
-            });
+            }
         }
         return new PageInfo<>(pageData.getTotal(), userDtos);
     }
@@ -208,7 +208,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
-               
+
             });
         }
         return ret > 0;
@@ -400,7 +400,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         // FileUtil.downloadExcel(list, response);
     }
 
-
     /**
      * 清理缓存
      *