Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

yusm 2 недель назад
Родитель
Сommit
e2a6e210b5

+ 0 - 18
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DingTalkController.java

@@ -1,40 +1,22 @@
 package com.management.platform.controller;
 
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.management.platform.entity.*;
 
 import com.management.platform.mapper.CompanyMapper;
 import com.management.platform.service.UserService;
-import com.management.platform.service.impl.AuthService;
 import com.management.platform.service.impl.DingTalkService;
-import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
-import com.management.platform.util.UserAgentUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.tomcat.util.codec.binary.Base64;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.*;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.client.RestTemplate;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.view.RedirectView;
 
 import javax.annotation.Resource;
-import javax.crypto.Mac;
-import javax.crypto.spec.SecretKeySpec;
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.HashMap;

+ 30 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ContractBonusDetail.java

@@ -1,21 +1,33 @@
 package com.management.platform.entity;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import java.util.Date;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 
-import java.math.BigDecimal;
-import java.util.Date;
-
+/**
+ * <p>
+ * 分摊奖金明细
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-06-13
+ */
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
 public class ContractBonusDetail extends Model<ContractBonusDetail> {
+
     private static final long serialVersionUID=1L;
 
     /**
@@ -101,4 +113,17 @@ public class ContractBonusDetail extends Model<ContractBonusDetail> {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
+
+    /**
+     * 是否为冲销数据
+     */
+    @TableField("is_nagative")
+    private Boolean isNagative;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
 }

+ 14 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ContractBonusSummary.java

@@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -82,4 +83,17 @@ public class ContractBonusSummary extends Model<ContractBonusSummary> {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
+
+    /**
+     * 是否为冲销数据
+     */
+    @TableField("is_negative")
+    private Boolean isNegative;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
 }

+ 5 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/ContractBonusSummaryVO.java

@@ -70,4 +70,9 @@ public class ContractBonusSummaryVO {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
+
+    /**
+     * 是否为负数
+     */
+    private String isNegative;
 }

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DeviceLogServiceImpl.java

@@ -274,7 +274,7 @@ public class DeviceLogServiceImpl extends ServiceImpl<DeviceLogMapper, DeviceLog
             Integer companyId = targetUser.getCompanyId();
             Map<String, Object> resultMap = new HashMap<>();
 
-            List<Map<String, Object>> list =deviceLogMapper.selectListGroupByProject(companyId,startDate,endDate,projectId);
+            List<Map<String, Object>> list =deviceLogMapper.selectListGroupByProject(companyId,startDate,endDate + " 23:59:59",projectId);
 
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
             for (Map<String, Object> map : list) {
@@ -309,7 +309,7 @@ public class DeviceLogServiceImpl extends ServiceImpl<DeviceLogMapper, DeviceLog
         Integer companyId = targetUser.getCompanyId();
         List<Map<String, Object>> sumProjectList =deviceLogMapper.selectListGroupByProject(companyId,startDate,endDate,projectId);
         List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().eq("company_id", companyId));
-        List<DeviceLog> deviceLogs = deviceLogMapper.selectList(new QueryWrapper<DeviceLog>().between("create_date", startDate, endDate).isNotNull("end_time"));
+        List<DeviceLog> deviceLogs = deviceLogMapper.selectList(new QueryWrapper<DeviceLog>().between("start_time", startDate, endDate + " 23:59:59").isNotNull("end_time"));
 
         ArrayList<List<String>> allList = new ArrayList<>();
         List<String> headList = new ArrayList<String>();

+ 47 - 23
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ContractBonusDetailMapper.xml

@@ -1,29 +1,52 @@
-<?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" >
+<?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.management.platform.mapper.ContractBonusDetailMapper">
 
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.ContractBonusDetail">
+        <id column="id" property="id" />
+        <result column="company_id" property="companyId" />
+        <result column="user_id" property="userId" />
+        <result column="contract" property="contract" />
+        <result column="project_id" property="projectId" />
+        <result column="project_working_time" property="projectWorkingTime" />
+        <result column="bonus_type" property="bonusType" />
+        <result column="bonus_value" property="bonusValue" />
+        <result column="total_bonus_value" property="totalBonusValue" />
+        <result column="ym" property="ym" />
+        <result column="year" property="year" />
+        <result column="month" property="month" />
+        <result column="create_by" property="createBy" />
+        <result column="create_time" property="createTime" />
+        <result column="is_nagative" property="isNagative" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, company_id, user_id, contract, project_id, project_working_time, bonus_type, bonus_value, total_bonus_value, ym, year, month, create_by, create_time, is_nagative
+    </sql>
+
     <insert id="batchInsert">
         insert into contract_bonus_detail(company_id, user_id, contract, project_id,project_working_time, bonus_type, bonus_value
         , total_bonus_value, ym, year, month, create_by, create_time)
         VALUES
-            <foreach collection="toAddList" item="detail" separator=",">
-                (#{detail.companyId},#{detail.userId},#{detail.contract},#{detail.projectId},#{detail.projectWorkingTime},#{detail.bonusType}
-                ,#{detail.bonusValue},#{detail.totalBonusValue},#{detail.ym},#{detail.year},null,#{detail.createBy},now())
-            </foreach>
+        <foreach collection="toAddList" item="detail" separator=",">
+            (#{detail.companyId},#{detail.userId},#{detail.contract},#{detail.projectId},#{detail.projectWorkingTime},#{detail.bonusType}
+            ,#{detail.bonusValue},#{detail.totalBonusValue},#{detail.ym},#{detail.year},null,#{detail.createBy},now())
+        </foreach>
 
     </insert>
 
 
-<!--    <resultMap id="contractProjectBonus" type="com.management.platform.entity.vo.ContractProjectBonusVO">-->
-<!--        <result property="contract" column="contract"></result>-->
-<!--        <collection property="projectBonusList" ofType="com.management.platform.entity.vo.ProjectBonusVO">-->
-<!--            <result property="projectId" column="projectId"></result>-->
-<!--            <result property="projectName" column="projectName"></result>-->
-<!--            <result property="bonus" column="bonus"></result>-->
-<!--            <result property="bonusType" column="bonusType"></result>-->
-<!--        </collection>-->
-<!--    </resultMap>-->
+    <!--    <resultMap id="contractProjectBonus" type="com.management.platform.entity.vo.ContractProjectBonusVO">-->
+    <!--        <result property="contract" column="contract"></result>-->
+    <!--        <collection property="projectBonusList" ofType="com.management.platform.entity.vo.ProjectBonusVO">-->
+    <!--            <result property="projectId" column="projectId"></result>-->
+    <!--            <result property="projectName" column="projectName"></result>-->
+    <!--            <result property="bonus" column="bonus"></result>-->
+    <!--            <result property="bonusType" column="bonusType"></result>-->
+    <!--        </collection>-->
+    <!--    </resultMap>-->
 
     <select id="getExportContractProjectBonusForSpecial" resultType="com.management.platform.entity.excel.ProjectContractBonusExcelHead">
         select tmp1.*,p.project_name as projectName
@@ -31,12 +54,12 @@
             (
                 select contract,project_id projectId,bonus_type bonusType,
                        max( case bonus_type when '第一季度奖' then bonus  else 0 end)  as firstSeasonBonus,
-                        max(case bonus_type when '第二季度奖' then bonus  else 0 end )as secondSeasonBonus,
-                        max(case bonus_type when '第三季度奖' then bonus  else 0 end) as thirdSeasonBonus,
-                        max(case bonus_type when '第四季度奖' then bonus  else 0 end) as forthSeasonBonus,
-                        max(case bonus_type when '上半年奖' then bonus  else 0 end) as soonerHalfYearBonus,
-                        max(case bonus_type when '下半年奖' then bonus  else 0 end) as latterHalfYearBonus,
-                        max(case bonus_type when '全年奖' then bonus  else 0 end) as yearBonus
+                       max(case bonus_type when '第二季度奖' then bonus  else 0 end )as secondSeasonBonus,
+                       max(case bonus_type when '第三季度奖' then bonus  else 0 end) as thirdSeasonBonus,
+                       max(case bonus_type when '第四季度奖' then bonus  else 0 end) as forthSeasonBonus,
+                       max(case bonus_type when '上半年奖' then bonus  else 0 end) as soonerHalfYearBonus,
+                       max(case bonus_type when '下半年奖' then bonus  else 0 end) as latterHalfYearBonus,
+                       max(case bonus_type when '全年奖' then bonus  else 0 end) as yearBonus
                 from (
                          select contract,bonus_type,project_id,sum(bonus_value) as bonus
                          from contract_bonus_detail
@@ -51,10 +74,11 @@
             resultType="com.management.platform.entity.vo.ContractBonusDetailVO">
         select cbd.id, cbd.company_id, cbd.user_id, cbd.contract, cbd.project_id, cbd.project_working_time, cbd.bonus_type
              , cbd.bonus_value, cbd.total_bonus_value, cbd.ym, cbd.year, cbd.month, cbd.create_by, cbd.create_time
-             ,u.name as userName,p.project_name
+             ,u.name as userName,p.project_name, cbd.is_nagative
         from contract_bonus_detail cbd
                  left join user u on cbd.user_id = u.id
                  left join project p on cbd.project_id = p.id
         where cbd.company_id = #{companyId} and cbd.year = #{year}
     </select>
+
 </mapper>

+ 25 - 12
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ContractBonusSummaryMapper.xml

@@ -1,8 +1,27 @@
-<?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" >
+<?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.management.platform.mapper.ContractBonusSummaryMapper">
 
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.ContractBonusSummary">
+        <id column="id" property="id" />
+        <result column="company_id" property="companyId" />
+        <result column="contract" property="contract" />
+        <result column="user_id" property="userId" />
+        <result column="bonus_type" property="bonusType" />
+        <result column="total_bonus_value" property="totalBonusValue" />
+        <result column="year" property="year" />
+        <result column="start_ym" property="startYm" />
+        <result column="end_ym" property="endYm" />
+        <result column="create_by" property="createBy" />
+        <result column="create_time" property="createTime" />
+        <result column="is_negative" property="isNegative" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, company_id, contract, user_id, bonus_type, total_bonus_value, year, start_ym, end_ym, create_by, create_time, is_negative
+    </sql>
     <insert id="batchInsertByImportData">
         insert into contract_bonus_summary(company_id,  user_id,contract, bonus_type, total_bonus_value
         , start_ym, end_ym, create_by, create_time,year) VALUES
@@ -15,19 +34,13 @@
     <select id="getBonusSummary" resultType="com.management.platform.entity.vo.ContractBonusSummaryVO">
         select cbs.id, cbs.company_id, cbs.contract, cbs.user_id, cbs.bonus_type, cbs.total_bonus_value
              , cbs.year, cbs.start_ym, cbs.end_ym, cbs.create_by, cbs.create_time
-             , u.job_number,u.name as userName
+             , u.job_number,u.name as userName,cbs.is_negative
         from contract_bonus_summary cbs
                  left join user u on cbs.user_id = u.id
         where
             cbs.year = substr(#{ym},1,4)  and cbs.company_id = #{companyId}
-        and substr(cbs.start_ym,6,7) &lt;= substr(#{ym},6,7)
-        and substr(cbs.end_ym,6,7) &gt;= substr(#{ym},6,7)
+          and substr(cbs.start_ym,6,7) &lt;= substr(#{ym},6,7)
+          and substr(cbs.end_ym,6,7) &gt;= substr(#{ym},6,7)
         order by cbs.user_id
     </select>
-
-    <sql id="baseColumns">
-        id, company_id, contract, user_id, bonus_type, total_bonus_value, year, start_ym, end_ym, create_by, create_time
-    </sql>
-
-
 </mapper>