From cba8297979e793300e1b498730902133b224b7e3 Mon Sep 17 00:00:00 2001 From: kk <guokunkun@yswg.com.cn> Date: Mon, 26 May 2025 16:28:58 +0800 Subject: [PATCH] 16832-简易视频任务导+刷数据 --- pom.xml | 5 +++++ src/main/java/cn/kk/spring_simple_operation/controller/DeptGroupController.java | 20 ++++++++++++++++++++ src/main/java/cn/kk/spring_simple_operation/entity/DeptGroup.java | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/kk/spring_simple_operation/entity/PhotoProgressPerson.java | 2 ++ src/main/java/cn/kk/spring_simple_operation/entity/VisualDesignLog.java | 3 ++- src/main/java/cn/kk/spring_simple_operation/enums/StatusEnum.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/kk/spring_simple_operation/mapper/DeptGroupMapper.java | 22 ++++++++++++++++++++++ src/main/java/cn/kk/spring_simple_operation/mapper/PhotoProgressMapper.java | 2 +- src/main/java/cn/kk/spring_simple_operation/model/vo/PhotoSkuInfo.java | 1 + src/main/java/cn/kk/spring_simple_operation/service/DeptGroupService.java | 19 +++++++++++++++++++ src/main/java/cn/kk/spring_simple_operation/service/PhotoProgressService.java | 2 ++ src/main/java/cn/kk/spring_simple_operation/service/impl/DeptGroupServiceImpl.java | 31 +++++++++++++++++++++++++++++++ src/main/java/cn/kk/spring_simple_operation/service/impl/PhotoProgressServiceImpl.java | 351 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------- src/main/resources/mapper/DeptGroupMapper.xml | 19 +++++++++++++++++++ src/main/resources/mapper/PhotoProgressMapper.xml | 11 +++++++++-- src/test/java/cn/kk/spring_simple_operation/ApplicationTest.java | 16 +++++++++++----- 16 files changed, 489 insertions(+), 134 deletions(-) create mode 100644 src/main/java/cn/kk/spring_simple_operation/controller/DeptGroupController.java create mode 100644 src/main/java/cn/kk/spring_simple_operation/entity/DeptGroup.java create mode 100644 src/main/java/cn/kk/spring_simple_operation/enums/StatusEnum.java create mode 100644 src/main/java/cn/kk/spring_simple_operation/mapper/DeptGroupMapper.java create mode 100644 src/main/java/cn/kk/spring_simple_operation/service/DeptGroupService.java create mode 100644 src/main/java/cn/kk/spring_simple_operation/service/impl/DeptGroupServiceImpl.java create mode 100644 src/main/resources/mapper/DeptGroupMapper.xml diff --git a/pom.xml b/pom.xml index 36be0fb..d1fd101 100644 --- a/pom.xml +++ b/pom.xml @@ -103,6 +103,11 @@ <artifactId>commons-lang3</artifactId> <scope>compile</scope> </dependency> + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + <version>27.0-jre</version> + </dependency> </dependencies> diff --git a/src/main/java/cn/kk/spring_simple_operation/controller/DeptGroupController.java b/src/main/java/cn/kk/spring_simple_operation/controller/DeptGroupController.java new file mode 100644 index 0000000..33f47a8 --- /dev/null +++ b/src/main/java/cn/kk/spring_simple_operation/controller/DeptGroupController.java @@ -0,0 +1,20 @@ +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 2025-05-26 + */ +@RestController +@RequestMapping("/spring_simple_operation/dept-group") +public class DeptGroupController { + +} diff --git a/src/main/java/cn/kk/spring_simple_operation/entity/DeptGroup.java b/src/main/java/cn/kk/spring_simple_operation/entity/DeptGroup.java new file mode 100644 index 0000000..a13bc58 --- /dev/null +++ b/src/main/java/cn/kk/spring_simple_operation/entity/DeptGroup.java @@ -0,0 +1,68 @@ +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 io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import lombok.experimental.Accessors; + +/** + * <p> + * 各部门分组表 + * </p> + * + * @author guokunkun + * @since 2025-05-26 + */ +@Getter +@Setter +@Accessors(chain = true) +@TableName("dept_group") +@ApiModel(value = "DeptGroup对象", description = "各部门分组表") +public class DeptGroup implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("父组Id") + @TableField("parent_id") + private Integer parentId; + + @ApiModelProperty("归属的顶级部门如:开发、摄影等") + @TableField("module") + private String module; + + @ApiModelProperty("部门/组名称") + @TableField("group_name") + private String groupName; + + @ApiModelProperty("部门/组简称(代表组路径)") + @TableField("group_num") + private String groupNum; + + @ApiModelProperty("部门/组职位") + @TableField("position") + private String position; + + @ApiModelProperty("是否是叶子节点") + @TableField("is_leaf") + private Integer isLeaf; + + @ApiModelProperty("节点全路径") + @TableField("node_path") + private String nodePath; + + @ApiModelProperty("路径全名") + @TableField("full_name") + private String fullName; + + +} diff --git a/src/main/java/cn/kk/spring_simple_operation/entity/PhotoProgressPerson.java b/src/main/java/cn/kk/spring_simple_operation/entity/PhotoProgressPerson.java index 34b751a..aa46662 100644 --- a/src/main/java/cn/kk/spring_simple_operation/entity/PhotoProgressPerson.java +++ b/src/main/java/cn/kk/spring_simple_operation/entity/PhotoProgressPerson.java @@ -135,5 +135,7 @@ public class PhotoProgressPerson implements Serializable { @TableField("video_tort_reason") private String videoTortReason; + @ApiModelProperty(value = "是否改变了简易视频拍摄状态:0-否,1-是") + private Integer isChangeSimpleVideoStatus; } diff --git a/src/main/java/cn/kk/spring_simple_operation/entity/VisualDesignLog.java b/src/main/java/cn/kk/spring_simple_operation/entity/VisualDesignLog.java index adab195..dc9e980 100644 --- a/src/main/java/cn/kk/spring_simple_operation/entity/VisualDesignLog.java +++ b/src/main/java/cn/kk/spring_simple_operation/entity/VisualDesignLog.java @@ -1,5 +1,6 @@ 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; @@ -28,7 +29,7 @@ public class VisualDesignLog implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("id") - @TableId("id") + @TableId(value = "id", type = IdType.INPUT) private Long id; @ApiModelProperty("操作") diff --git a/src/main/java/cn/kk/spring_simple_operation/enums/StatusEnum.java b/src/main/java/cn/kk/spring_simple_operation/enums/StatusEnum.java new file mode 100644 index 0000000..5bcc644 --- /dev/null +++ b/src/main/java/cn/kk/spring_simple_operation/enums/StatusEnum.java @@ -0,0 +1,51 @@ +package cn.kk.spring_simple_operation.enums; + +import java.util.Arrays; + +/** + * @description: 视觉操作 进度枚举 + * @author: Devin + * @date: 2022-09-19 + */ +public enum StatusEnum { + + /** 状态,0-未完成,1-进行中,2-完成,3-不需要处理 */ + UNFINISHED(0, "未完成"), + IN_PROGRESS(1, "进行中"), + FINISH(2, "完成"), + NO_NEED_HANDLE(3, "不需要处理"),// 这个状态,目前废弃了,不要用了 + DEVELOPER_NO_NEED_HANDLE(4, "开发选择不需要处理"), + PHOTOGRAPHY_NO_NEED_HANDLE(5, "摄影选择不需要处理"), + SALE_NO_NEED_HANDLE(6, "不在建议拍摄类目中"), + + + + + ; + + + private final Integer code; + + private final String message; + + StatusEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } + + public static String get(Integer code){ + StatusEnum statusEnum = Arrays.stream(StatusEnum.values()).filter(e -> code.equals(e.getCode())).findAny().orElse(null); + if(statusEnum != null){ + return statusEnum.getMessage(); + } + return ""; + } +} diff --git a/src/main/java/cn/kk/spring_simple_operation/mapper/DeptGroupMapper.java b/src/main/java/cn/kk/spring_simple_operation/mapper/DeptGroupMapper.java new file mode 100644 index 0000000..43cfe3f --- /dev/null +++ b/src/main/java/cn/kk/spring_simple_operation/mapper/DeptGroupMapper.java @@ -0,0 +1,22 @@ +package cn.kk.spring_simple_operation.mapper; + +import cn.kk.spring_simple_operation.entity.DeptGroup; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * <p> + * 各部门分组表 Mapper 接口 + * </p> + * + * @author guokunkun + * @since 2025-05-26 + */ +@Mapper +public interface DeptGroupMapper extends BaseMapper<DeptGroup> { + + List<String> getDeveloperNumByNodePathList(@Param("module") String module, @Param("nodePathList") List<String> nodePathList); +} diff --git a/src/main/java/cn/kk/spring_simple_operation/mapper/PhotoProgressMapper.java b/src/main/java/cn/kk/spring_simple_operation/mapper/PhotoProgressMapper.java index 137f656..2b5c662 100644 --- a/src/main/java/cn/kk/spring_simple_operation/mapper/PhotoProgressMapper.java +++ b/src/main/java/cn/kk/spring_simple_operation/mapper/PhotoProgressMapper.java @@ -21,7 +21,7 @@ public interface PhotoProgressMapper extends BaseMapper<PhotoProgress> { List<PhotoProgress> getListBySku(@Param("skuList") List<String> collect); - List<PhotoSkuInfo> getSkuInfo(); + List<PhotoSkuInfo> getSkuInfo(@Param("developerNumList") List<String> developerNumList); List<PhotoSkuInfo> getSkuInfo2(); } diff --git a/src/main/java/cn/kk/spring_simple_operation/model/vo/PhotoSkuInfo.java b/src/main/java/cn/kk/spring_simple_operation/model/vo/PhotoSkuInfo.java index 55704c3..a70c127 100644 --- a/src/main/java/cn/kk/spring_simple_operation/model/vo/PhotoSkuInfo.java +++ b/src/main/java/cn/kk/spring_simple_operation/model/vo/PhotoSkuInfo.java @@ -9,6 +9,7 @@ import lombok.Data; @Data public class PhotoSkuInfo { + private Long id; private String sku; diff --git a/src/main/java/cn/kk/spring_simple_operation/service/DeptGroupService.java b/src/main/java/cn/kk/spring_simple_operation/service/DeptGroupService.java new file mode 100644 index 0000000..b24b440 --- /dev/null +++ b/src/main/java/cn/kk/spring_simple_operation/service/DeptGroupService.java @@ -0,0 +1,19 @@ +package cn.kk.spring_simple_operation.service; + +import cn.kk.spring_simple_operation.entity.DeptGroup; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * <p> + * 各部门分组表 服务类 + * </p> + * + * @author guokunkun + * @since 2025-05-26 + */ +public interface DeptGroupService extends IService<DeptGroup> { + + List<String> getDeveloperNumByNodePathList(String module, List<String> nodePathList); +} diff --git a/src/main/java/cn/kk/spring_simple_operation/service/PhotoProgressService.java b/src/main/java/cn/kk/spring_simple_operation/service/PhotoProgressService.java index a8385fd..241bacb 100644 --- a/src/main/java/cn/kk/spring_simple_operation/service/PhotoProgressService.java +++ b/src/main/java/cn/kk/spring_simple_operation/service/PhotoProgressService.java @@ -19,4 +19,6 @@ public interface PhotoProgressService extends IService<PhotoProgress> { void setUploadStatusIsDeleted(List<SkuSiteDTO> list); void getVideoSkuArea(); + + void brushSimpleVideoData(); } diff --git a/src/main/java/cn/kk/spring_simple_operation/service/impl/DeptGroupServiceImpl.java b/src/main/java/cn/kk/spring_simple_operation/service/impl/DeptGroupServiceImpl.java new file mode 100644 index 0000000..8c1383e --- /dev/null +++ b/src/main/java/cn/kk/spring_simple_operation/service/impl/DeptGroupServiceImpl.java @@ -0,0 +1,31 @@ +package cn.kk.spring_simple_operation.service.impl; + +import cn.kk.spring_simple_operation.entity.DeptGroup; +import cn.kk.spring_simple_operation.mapper.DeptGroupMapper; +import cn.kk.spring_simple_operation.service.DeptGroupService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.Collections; +import java.util.List; + +/** + * <p> + * 各部门分组表 服务实现类 + * </p> + * + * @author guokunkun + * @since 2025-05-26 + */ +@Service +public class DeptGroupServiceImpl extends ServiceImpl<DeptGroupMapper, DeptGroup> implements DeptGroupService { + + @Override + public List<String> getDeveloperNumByNodePathList(String module, List<String> nodePathList) { + if (CollectionUtils.isEmpty(nodePathList)) { + return Collections.emptyList(); + } + return baseMapper.getDeveloperNumByNodePathList(module, nodePathList); + } +} diff --git a/src/main/java/cn/kk/spring_simple_operation/service/impl/PhotoProgressServiceImpl.java b/src/main/java/cn/kk/spring_simple_operation/service/impl/PhotoProgressServiceImpl.java index e8624f3..a0acbc4 100644 --- a/src/main/java/cn/kk/spring_simple_operation/service/impl/PhotoProgressServiceImpl.java +++ b/src/main/java/cn/kk/spring_simple_operation/service/impl/PhotoProgressServiceImpl.java @@ -1,25 +1,34 @@ package cn.kk.spring_simple_operation.service.impl; import cn.kk.spring_simple_operation.entity.PhotoProgress; +import cn.kk.spring_simple_operation.entity.PhotoProgressPerson; +import cn.kk.spring_simple_operation.entity.VisualDesignLog; +import cn.kk.spring_simple_operation.entity.VisualDesigner; +import cn.kk.spring_simple_operation.enums.StatusEnum; import cn.kk.spring_simple_operation.mapper.PhotoProgressMapper; import cn.kk.spring_simple_operation.model.dto.SkuSiteDTO; import cn.kk.spring_simple_operation.model.vo.PhotoSkuInfo; -import cn.kk.spring_simple_operation.service.PhotoProgressService; -import cn.kk.spring_simple_operation.service.VisualDesignLogService; +import cn.kk.spring_simple_operation.service.*; import cn.kk.spring_simple_operation.utils.CommonUtils; +import cn.kk.spring_simple_operation.utils.DateUtils; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.support.TransactionTemplate; +import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import javax.annotation.Resource; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentSkipListSet; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -37,6 +46,18 @@ public class PhotoProgressServiceImpl extends ServiceImpl<PhotoProgressMapper, P @Resource private VisualDesignLogService visualDesignLogService; + @Resource + private VisualDesignerService visualDesignerService; + + @Resource + private DeptGroupService deptGroupService; + + @Resource + private PhotoProgressPersonService photoProgressPersonService; + + @Resource + private TransactionTemplate transactionTemplate; + @Override @Transactional(rollbackFor = Exception.class) public void setUploadStatusIsDeleted(List<SkuSiteDTO> list) { @@ -55,145 +76,225 @@ public class PhotoProgressServiceImpl extends ServiceImpl<PhotoProgressMapper, P @Override public void getVideoSkuArea() { - List<PhotoSkuInfo> skuInfoList = baseMapper.getSkuInfo(); - ConcurrentHashMap<String, Integer> areaCountSingleMap = new ConcurrentHashMap<>(); - areaCountSingleMap.put("深圳", 0); - areaCountSingleMap.put("武汉", 0); - areaCountSingleMap.put("合肥", 0); - areaCountSingleMap.put("长沙", 0); - ConcurrentHashMap<String, ConcurrentSkipListSet<String>> areaCountMainMap = new ConcurrentHashMap<>(); - areaCountMainMap.put("深圳", new ConcurrentSkipListSet<>()); - areaCountMainMap.put("武汉", new ConcurrentSkipListSet<>()); - areaCountMainMap.put("合肥", new ConcurrentSkipListSet<>()); - areaCountMainMap.put("长沙", new ConcurrentSkipListSet<>()); - - - skuInfoList.forEach(t -> { - String region = CommonUtils.getRegion(t.getDept()); - areaCountSingleMap.put(region, areaCountSingleMap.getOrDefault(region, 0) + 1); - - ConcurrentSkipListSet<String> skuList = areaCountMainMap.get(region); - if (Objects.isNull(skuList)) { - throw new RuntimeException("区域:" + region + "不存在"); - } - - switch (t.getProductType()) { - case 1: - // 普通产品 - if (StringUtils.isEmpty(t.getRelativeSku())) { - skuList.add(t.getSku()); - } - else { - skuList.add(t.getRelativeSku()); - } - break; - case 2: - // 组合产品 - if (t.getIsCombVariant() == 0) { - //母体 - skuList.add(t.getSku()); - } - else if (t.getIsCombVariant() == 1) { - // 变体,添加他的母体 - skuList.add(t.getCombParentSku()); - } - break; - case 3: - skuList.add(t.getRelativeSku()); - break; - default: - log.error("产品类型错误:" + t.getProductType()); - break; - } - - }); - - AtomicInteger totalCount = new AtomicInteger(0); - log.info("区域统计结果:----母体sku总数"); - areaCountMainMap.forEach((k, v) -> { - log.info("区域:" + k + ",SKU数量:" + v.size()); - totalCount.addAndGet(v.size()); - }); - log.info("合计: " + totalCount.get()); - - totalCount.set(0); + //List<PhotoSkuInfo> skuInfoList = baseMapper.getSkuInfo(); + //ConcurrentHashMap<String, Integer> areaCountSingleMap = new ConcurrentHashMap<>(); + //areaCountSingleMap.put("深圳", 0); + //areaCountSingleMap.put("武汉", 0); + //areaCountSingleMap.put("合肥", 0); + //areaCountSingleMap.put("长沙", 0); + //ConcurrentHashMap<String, ConcurrentSkipListSet<String>> areaCountMainMap = new ConcurrentHashMap<>(); + //areaCountMainMap.put("深圳", new ConcurrentSkipListSet<>()); + //areaCountMainMap.put("武汉", new ConcurrentSkipListSet<>()); + //areaCountMainMap.put("合肥", new ConcurrentSkipListSet<>()); + //areaCountMainMap.put("长沙", new ConcurrentSkipListSet<>()); + // + // + //skuInfoList.forEach(t -> { + // String region = CommonUtils.getRegion(t.getDept()); + // areaCountSingleMap.put(region, areaCountSingleMap.getOrDefault(region, 0) + 1); + // + // ConcurrentSkipListSet<String> skuList = areaCountMainMap.get(region); + // if (Objects.isNull(skuList)) { + // throw new RuntimeException("区域:" + region + "不存在"); + // } + // + // switch (t.getProductType()) { + // case 1: + // // 普通产品 + // if (StringUtils.isEmpty(t.getRelativeSku())) { + // skuList.add(t.getSku()); + // } + // else { + // skuList.add(t.getRelativeSku()); + // } + // break; + // case 2: + // // 组合产品 + // if (t.getIsCombVariant() == 0) { + // //母体 + // skuList.add(t.getSku()); + // } + // else if (t.getIsCombVariant() == 1) { + // // 变体,添加他的母体 + // skuList.add(t.getCombParentSku()); + // } + // break; + // case 3: + // skuList.add(t.getRelativeSku()); + // break; + // default: + // log.error("产品类型错误:" + t.getProductType()); + // break; + // } + // + //}); + // + //AtomicInteger totalCount = new AtomicInteger(0); + //log.info("区域统计结果:----母体sku总数"); + //areaCountMainMap.forEach((k, v) -> { + // log.info("区域:" + k + ",SKU数量:" + v.size()); + // totalCount.addAndGet(v.size()); + //}); + //log.info("合计: " + totalCount.get()); + // + //totalCount.set(0); + // + //log.info("区域统计结果:----sku总数"); + //areaCountSingleMap.forEach((k, v) -> { + // log.info("区域:" + k + ",SKU数量:" + v); + // totalCount.addAndGet(v); + //}); + //log.info("合计: " + totalCount.get()); + // + //areaCountMainMap.clear(); + //areaCountSingleMap.clear(); + //areaCountSingleMap.put("深圳", 0); + //areaCountSingleMap.put("武汉", 0); + //areaCountSingleMap.put("合肥", 0); + //areaCountSingleMap.put("长沙", 0); + //areaCountMainMap.put("深圳", new ConcurrentSkipListSet<>()); + //areaCountMainMap.put("武汉", new ConcurrentSkipListSet<>()); + //areaCountMainMap.put("合肥", new ConcurrentSkipListSet<>()); + //areaCountMainMap.put("长沙", new ConcurrentSkipListSet<>()); + // + // + // + //baseMapper.getSkuInfo2().forEach(t -> { + // String region = CommonUtils.getRegion(t.getDept()); + // areaCountSingleMap.put(region, areaCountSingleMap.getOrDefault(region, 0) + 1); + // + // ConcurrentSkipListSet<String> skuList = areaCountMainMap.get(region); + // if (Objects.isNull(skuList)) { + // throw new RuntimeException("区域:" + region + "不存在"); + // } + // + // switch (t.getProductType()) { + // case 1: + // // 普通产品 + // if (StringUtils.isEmpty(t.getRelativeSku())) { + // skuList.add(t.getSku()); + // } + // else { + // skuList.add(t.getRelativeSku()); + // } + // break; + // case 2: + // // 组合产品 + // if (t.getIsCombVariant() == 0) { + // //母体 + // skuList.add(t.getSku()); + // } + // else if (t.getIsCombVariant() == 1) { + // // 变体,添加他的母体 + // skuList.add(t.getCombParentSku()); + // } + // break; + // case 3: + // skuList.add(t.getRelativeSku()); + // break; + // default: + // log.error("产品类型错误:" + t.getProductType()); + // break; + // } + // + //}); + // + //totalCount.set(0); + // + //log.info("老任务区域统计结果:----母体sku总数"); + //areaCountMainMap.forEach((k, v) -> { + // log.info("区域:" + k + ",SKU数量:" + v.size()); + // totalCount.addAndGet(v.size()); + //}); + //log.info("合计: " + totalCount.get()); + // + //totalCount.set(0); + // + //log.info("老任务区域统计结果:----sku总数"); + //areaCountSingleMap.forEach((k, v) -> { + // log.info("区域:" + k + ",SKU数量:" + v); + // totalCount.addAndGet(v); + //}); + //log.info("合计: " + totalCount.get()); + } - log.info("区域统计结果:----sku总数"); - areaCountSingleMap.forEach((k, v) -> { - log.info("区域:" + k + ",SKU数量:" + v); - totalCount.addAndGet(v); - }); - log.info("合计: " + totalCount.get()); + @Override + public void brushSimpleVideoData() { - areaCountMainMap.clear(); - areaCountSingleMap.clear(); - areaCountSingleMap.put("深圳", 0); - areaCountSingleMap.put("武汉", 0); - areaCountSingleMap.put("合肥", 0); - areaCountSingleMap.put("长沙", 0); - areaCountMainMap.put("深圳", new ConcurrentSkipListSet<>()); - areaCountMainMap.put("武汉", new ConcurrentSkipListSet<>()); - areaCountMainMap.put("合肥", new ConcurrentSkipListSet<>()); - areaCountMainMap.put("长沙", new ConcurrentSkipListSet<>()); + Map<String, VisualDesigner> simpleNameMap = visualDesignerService.list(Wrappers.<VisualDesigner>lambdaQuery().eq(VisualDesigner::getDepartmentKey, "photographer_group") + .in(VisualDesigner::getUserName, "江雯洁", "曾雪萍", "潘婷", "薛天")) + .stream().collect(Collectors.toMap(VisualDesigner::getUserName, Function.identity(), (a, b) -> a)); + Assert.isTrue(simpleNameMap.size() == 4, "简易视频师不全!"); + List<String> developerNumList = deptGroupService.getDeveloperNumByNodePathList("wal_develop", Collections.singletonList("DEVELOPER-YF2")); + List<PhotoSkuInfo> skuInfoList = baseMapper.getSkuInfo(developerNumList); + List<VisualDesignLog> logList = new ArrayList<>(); + Integer currentTimeSecond = DateUtils.getCurrentTimeSecond(); + List<PhotoProgressPerson> updateList = new LinkedList<>(); - baseMapper.getSkuInfo2().forEach(t -> { + skuInfoList.forEach(t -> { String region = CommonUtils.getRegion(t.getDept()); - areaCountSingleMap.put(region, areaCountSingleMap.getOrDefault(region, 0) + 1); - ConcurrentSkipListSet<String> skuList = areaCountMainMap.get(region); - if (Objects.isNull(skuList)) { - throw new RuntimeException("区域:" + region + "不存在"); - } + PhotoProgressPerson photoProgressPerson = new PhotoProgressPerson(); + photoProgressPerson.setId(t.getId()) + .setIsChangeSimpleVideoStatus(1) + .setSimpleVideoStatus(StatusEnum.UNFINISHED.getCode()); + String content = "修改简易视频任务状态为未完成,"; - switch (t.getProductType()) { - case 1: - // 普通产品 - if (StringUtils.isEmpty(t.getRelativeSku())) { - skuList.add(t.getSku()); - } - else { - skuList.add(t.getRelativeSku()); - } + VisualDesigner visualDesigner = null; + switch (region) { + case "深圳": + visualDesigner = simpleNameMap.get("江雯洁"); break; - case 2: - // 组合产品 - if (t.getIsCombVariant() == 0) { - //母体 - skuList.add(t.getSku()); - } - else if (t.getIsCombVariant() == 1) { - // 变体,添加他的母体 - skuList.add(t.getCombParentSku()); - } + case "武汉": + visualDesigner = simpleNameMap.get("曾雪萍"); break; - case 3: - skuList.add(t.getRelativeSku()); + case "长沙": + visualDesigner = simpleNameMap.get("潘婷"); break; - default: - log.error("产品类型错误:" + t.getProductType()); + case "合肥": + visualDesigner = simpleNameMap.get("薛天"); break; } + if (Objects.nonNull(visualDesigner)) { + photoProgressPerson + .setSimpleVideoPhotographerName(visualDesigner.getUserName()) + .setSimpleVideoPhotographerNum(visualDesigner.getVisualNumber()); + content += "根据开发地区修改简易视频师为:" + visualDesigner.getUserName(); + } else { + return; + } - }); + logList.add(new VisualDesignLog() + .setId(IdWorker.getId()) + .setOperationKey("photo_progress") + .setOperationContent(content) + .setRelationId(t.getId()) + .setOperationType("is_change_simple_video_status") + .setCreateTime(currentTimeSecond) + .setCreateId(0) + .setCreateName("job") + ); - totalCount.set(0); + updateList.add(photoProgressPerson); - log.info("老任务区域统计结果:----母体sku总数"); - areaCountMainMap.forEach((k, v) -> { - log.info("区域:" + k + ",SKU数量:" + v.size()); - totalCount.addAndGet(v.size()); }); - log.info("合计: " + totalCount.get()); - totalCount.set(0); - log.info("老任务区域统计结果:----sku总数"); - areaCountSingleMap.forEach((k, v) -> { - log.info("区域:" + k + ",SKU数量:" + v); - totalCount.addAndGet(v); - }); - log.info("合计: " + totalCount.get()); + if (!CollectionUtils.isEmpty(updateList)) { + List<List<PhotoProgressPerson>> pppList = Lists.partition(updateList, 500); + List<List<VisualDesignLog>> listList = Lists.partition(logList, 500); + for (int i = 0; i < pppList.size(); i++) { + int finalI = i; + transactionTemplate.execute(status -> { + photoProgressPersonService.updateBatchById(pppList.get(finalI)); + visualDesignLogService.saveBatch(listList.get(finalI)); + log.info("第{}/{}次更新数据库完成!", (finalI + 1), pppList.size()); + return true; + }); + } + } + log.info("修改简易视频任务状态成功,共修改{}条数据!", updateList.size()); } } diff --git a/src/main/resources/mapper/DeptGroupMapper.xml b/src/main/resources/mapper/DeptGroupMapper.xml new file mode 100644 index 0000000..026cb3b --- /dev/null +++ b/src/main/resources/mapper/DeptGroupMapper.xml @@ -0,0 +1,19 @@ +<?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.DeptGroupMapper"> + + <select id="getDeveloperNumByNodePathList" resultType="java.lang.String"> + SELECT + distinct sd.developer_num + FROM + dept_group dg + LEFT JOIN sync_developer sd on sd.group = dg.group_num + WHERE + dg.module = #{module} AND sd.developer_num > '' + AND ( + <foreach collection="nodePathList" separator="or" item="nodePath"> + dg.node_path like concat(#{nodePath}, '%') + </foreach> + ) + </select> +</mapper> diff --git a/src/main/resources/mapper/PhotoProgressMapper.xml b/src/main/resources/mapper/PhotoProgressMapper.xml index b99f8a6..474dcb3 100644 --- a/src/main/resources/mapper/PhotoProgressMapper.xml +++ b/src/main/resources/mapper/PhotoProgressMapper.xml @@ -33,9 +33,16 @@ WHERE vp.id IS NULL AND pp.sku > '' - AND ppp.simple_video_status != 2 - AND ppp.is_change_simple_video_status = 1 + AND ppp.simple_video_status not in (0, 1, 2) AND spp.sale_time > 1716048000 + + <if test="developerNumList != null and developerNumList.size() > 0"> + AND spa.developer_num not in + <foreach collection="developerNumList" item="developerNum" open="(" close=")" separator=","> + #{developerNum} + </foreach> + </if> + GROUP BY pp.sku </select> diff --git a/src/test/java/cn/kk/spring_simple_operation/ApplicationTest.java b/src/test/java/cn/kk/spring_simple_operation/ApplicationTest.java index 7bf6f78..a60a6da 100644 --- a/src/test/java/cn/kk/spring_simple_operation/ApplicationTest.java +++ b/src/test/java/cn/kk/spring_simple_operation/ApplicationTest.java @@ -51,7 +51,13 @@ public class ApplicationTest { //updateBrandTransparencyPlan(); - getVideoSkuArea(); + //getVideoSkuArea(); + + brushSimpleVideoData(); + } + + private void brushSimpleVideoData() { + photoProgressService.brushSimpleVideoData(); } //private void setUploadStatusIsDeleted() throws Exception { @@ -90,10 +96,10 @@ public class ApplicationTest { //} - private void getVideoSkuArea() { - - photoProgressService.getVideoSkuArea(); - } + //private void getVideoSkuArea() { + // + // photoProgressService.getVideoSkuArea(); + //} } -- libgit2 0.26.0