Commit 14eeb45a by kk

修复策划月度统计数据

parent 3d30f125
package cn.kk.spring_simple_operation.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 策划任务统计表 前端控制器
* </p>
*
* @author guokunkun
* @since 2026-03-03
*/
@RestController
@RequestMapping("/spring_simple_operation/visual-plan-executor-task-record")
public class VisualPlanExecutorTaskRecordController {
}
package cn.kk.spring_simple_operation.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
/**
* <p>
* 策划任务统计表
* </p>
*
* @author guokunkun
* @since 2026-03-03
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("visual_plan_executor_task_record")
@ApiModel(value = "VisualPlanExecutorTaskRecord对象", description = "策划任务统计表")
public class VisualPlanExecutorTaskRecord implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty("任务类型,0-A+策划,1-视频策划")
@TableField("task_type")
private Integer taskType;
@ApiModelProperty("任务执行人的用户id")
@TableField("user_id")
private Integer userId;
@ApiModelProperty("年份")
@TableField("year_int")
private Integer yearInt;
@ApiModelProperty("月份")
@TableField("month_int")
private Integer monthInt;
@ApiModelProperty("日期")
@TableField("task_date")
private Integer taskDate;
@ApiModelProperty("当月任务数量")
@TableField("task_weight_num")
private BigDecimal taskWeightNum;
@ApiModelProperty("当月任务数量排名")
@TableField("task_weight_num_rank")
private Integer taskWeightNumRank;
@ApiModelProperty("销量增长")
@TableField("sales_growth")
private Integer salesGrowth;
@ApiModelProperty("销量增长排名")
@TableField("sales_growth_rank")
private Integer salesGrowthRank;
@ApiModelProperty("评优数量")
@TableField("appraising_num")
private Integer appraisingNum;
@ApiModelProperty("质检等级")
@TableField("inspect_grade")
private String inspectGrade;
@ApiModelProperty("综合排名")
@TableField("comprehensive_rank")
private Integer comprehensiveRank;
@ApiModelProperty("备注")
@TableField("remark")
private String remark;
@ApiModelProperty("是否人为修改了数量,0-否,1-是")
@TableField("is_change")
private Integer isChange;
@ApiModelProperty("创建时间")
@TableField("create_time")
private Integer createTime;
}
package cn.kk.spring_simple_operation.mapper;
import cn.kk.spring_simple_operation.entity.VisualPlanExecutorTaskRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 策划任务统计表 Mapper 接口
* </p>
*
* @author guokunkun
* @since 2026-03-03
*/
@Mapper
public interface VisualPlanExecutorTaskRecordMapper extends BaseMapper<VisualPlanExecutorTaskRecord> {
Integer getAPlusAppraisingCountByUser(@Param("month") String month, @Param("visualNumber") String visualNumber);
Integer getVideoAppraisingCountByUser(@Param("timeStart") Integer timeStart, @Param("timeEnd") Integer timeEnd, @Param("visualNumber") String visualNumber);
}
package cn.kk.spring_simple_operation.service;
import cn.kk.spring_simple_operation.entity.VisualPlanExecutorTaskRecord;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 策划任务统计表 服务类
* </p>
*
* @author guokunkun
* @since 2026-03-03
*/
public interface VisualPlanExecutorTaskRecordService extends IService<VisualPlanExecutorTaskRecord> {
}
package cn.kk.spring_simple_operation.service.impl;
import cn.kk.spring_simple_operation.entity.VisualPlanExecutorTaskRecord;
import cn.kk.spring_simple_operation.mapper.VisualPlanExecutorTaskRecordMapper;
import cn.kk.spring_simple_operation.service.VisualPlanExecutorTaskRecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 策划任务统计表 服务实现类
* </p>
*
* @author guokunkun
* @since 2026-03-03
*/
@Service
public class VisualPlanExecutorTaskRecordServiceImpl extends ServiceImpl<VisualPlanExecutorTaskRecordMapper, VisualPlanExecutorTaskRecord> implements VisualPlanExecutorTaskRecordService {
}
......@@ -176,7 +176,7 @@
LEFT JOIN sync_account_manager sac ON sac.manager_name = soos.account_edit
WHERE
pp.create_at > 1640966400
AND ppp.simple_video_complete_time BETWEEN 1735660800 AND 1770800400
AND ppp.simple_video_complete_time BETWEEN 1735660800 AND 1770886799
AND pp.simple_video_upload_status = 0
</select>
</mapper>
<?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="cn.kk.spring_simple_operation.mapper.VisualPlanExecutorTaskRecordMapper">
<select id="getAPlusAppraisingCountByUser" resultType="java.lang.Integer">
SELECT
count(distinct vpar.id)
FROM visual_designer vd
INNER JOIN visual_a_plus_plan vapp ON vd.visual_number = vapp.executor_number
INNER JOIN visual_plan_appraising_record vpar ON vpar.plan_id = vapp.id
WHERE vapp.is_delete = 0
AND vpar.appraising_month = #{month}
AND vpar.appraising = 1
AND vd.visual_number = #{visualNumber}
AND vapp.vdt_id IN (66, 67, 68, 73, 80, 82, 107, 108)
AND vapp.`status` = 2
</select>
<select id="getVideoAppraisingCountByUser" resultType="java.lang.Integer">
SELECT
COUNT(1)
FROM visual_video_plan vvp
INNER JOIN visual_designer vd ON vd.visual_number = vvp.executor_number
WHERE vvp.is_delete = 0
AND vd.visual_number = #{visualNumber}
AND vvp.vdt_id IN (2, 3, 74, 83)
AND vvp.`status` = 2
AND vvp.upload_long_video_time BETWEEN #{timeStart} AND #{timeEnd}
AND vvp.sale_appraising_flag = 1
</select>
</mapper>
......@@ -129,6 +129,10 @@ public class MyTest {
);
if (CollectionUtils.isEmpty(visualPlanExecutorTaskRecords)) return;
Calendar calendar = Calendar.getInstance();
calendar.set(2026, month - 1, 1);
Date time = calendar.getTime();
Map<Integer, VisualPlanExecutorTaskRecord> userMap = visualPlanExecutorTaskRecords.stream().collect(Collectors.toMap(VisualPlanExecutorTaskRecord::getUserId, Function.identity()));
for (SkuPeopleNameDto dto : voList) {
Integer userId = userNumberMap.get(dto.getNumber());
......@@ -139,9 +143,6 @@ public class MyTest {
VisualPlanExecutorTaskRecord record = userMap.get(userId);
if (record != null) {
record.setSalesGrowth(dto.getPositiveSalesGrowth());
Calendar calendar = Calendar.getInstance();
calendar.set(2026, month, 1);
Date time = calendar.getTime();
int appraisingNum = visualPlanExecutorTaskRecordMapper.getAPlusAppraisingCountByUser(DateUtils.formatDate(time, "yyyy-MM"), dto.getNumber());
record.setAppraisingNum(appraisingNum);
}
......@@ -191,6 +192,11 @@ public class MyTest {
);
if (CollectionUtils.isEmpty(visualPlanExecutorTaskRecords)) return;
Calendar calendar = Calendar.getInstance();
calendar.set(2026, month - 1, 1);
Date time = calendar.getTime();
Integer timeSecond = DateUtils.date2TimeSecond(time);
Map<Integer, VisualPlanExecutorTaskRecord> userMap = visualPlanExecutorTaskRecords.stream().collect(Collectors.toMap(VisualPlanExecutorTaskRecord::getUserId, Function.identity()));
for (SkuPeopleNameDto dto : voList) {
Integer userId = userNumberMap.get(dto.getNumber());
......@@ -201,10 +207,7 @@ public class MyTest {
VisualPlanExecutorTaskRecord record = userMap.get(userId);
if (record != null) {
record.setSalesGrowth(dto.getPositiveSalesGrowth());
Calendar calendar = Calendar.getInstance();
calendar.set(2026, month - 1, 1);
Date time = calendar.getTime();
Integer timeSecond = DateUtils.date2TimeSecond(time);
int appraisingNum = visualPlanExecutorTaskRecordMapper.getVideoAppraisingCountByUser(DateUtils.getStartMonthOffset(timeSecond, 0), DateUtils.getEndMonthOffset(timeSecond, 0), dto.getNumber());
record.setAppraisingNum(appraisingNum);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment