From e0c191c73331d6f3ea6371e6243089ab0d6df855 Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Mon, 17 Mar 2025 15:21:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=97=E6=9D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czg/mergedata/common/utils/CodeGen.java | 6 +- .../controller/ShopInfoController.java | 8 + .../mergedata/cur/entity/CurConsGroup.java | 63 ++++++++ .../cur/entity/CurConsGroupRelation.java | 47 ++++++ .../czg/mergedata/cur/entity/CurConsInfo.java | 109 +++++++++++++ .../cur/entity/CurProdConsRelation.java | 61 ++++++++ .../cur/mapper/CurConsGroupMapper.java | 16 ++ .../mapper/CurConsGroupRelationMapper.java | 16 ++ .../cur/mapper/CurConsInfoMapper.java | 16 ++ .../cur/mapper/CurProdConsRelationMapper.java | 17 +++ .../service/CurConsGroupRelationService.java | 14 ++ .../cur/service/CurConsGroupService.java | 14 ++ .../cur/service/CurConsInfoService.java | 17 +++ .../service/CurProdConsRelationService.java | 14 ++ .../impl/CurConsGroupRelationServiceImpl.java | 18 +++ .../service/impl/CurConsGroupServiceImpl.java | 18 +++ .../service/impl/CurConsInfoServiceImpl.java | 143 ++++++++++++++++++ .../impl/CurProdConsRelationServiceImpl.java | 18 +++ .../czg/mergedata/old/entity/OldConsInfo.java | 128 ++++++++++++++++ .../czg/mergedata/old/entity/OldConsType.java | 65 ++++++++ .../mergedata/old/entity/OldProskuCon.java | 89 +++++++++++ .../old/mapper/OldConsInfoMapper.java | 16 ++ .../old/mapper/OldConsTypeMapper.java | 16 ++ .../old/mapper/OldProskuConMapper.java | 16 ++ .../old/service/OldConsInfoService.java | 14 ++ .../old/service/OldConsTypeService.java | 14 ++ .../old/service/OldProskuConService.java | 14 ++ .../service/impl/OldConsInfoServiceImpl.java | 18 +++ .../service/impl/OldConsTypeServiceImpl.java | 18 +++ .../service/impl/OldProskuConServiceImpl.java | 18 +++ .../resources/mapper/cur/ConsGroupMapper.xml | 7 + .../mapper/cur/ConsGroupRelationMapper.xml | 7 + .../resources/mapper/cur/ConsInfoMapper.xml | 7 + .../mapper/cur/ProdConsRelationMapper.xml | 7 + .../resources/mapper/old/ConsInfoMapper.xml | 7 + .../resources/mapper/old/ConsTypeMapper.xml | 7 + .../resources/mapper/old/ProskuConMapper.xml | 7 + 收银机数据迁移关系.md | 8 + 38 files changed, 1095 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/czg/mergedata/cur/entity/CurConsGroup.java create mode 100644 src/main/java/com/czg/mergedata/cur/entity/CurConsGroupRelation.java create mode 100644 src/main/java/com/czg/mergedata/cur/entity/CurConsInfo.java create mode 100644 src/main/java/com/czg/mergedata/cur/entity/CurProdConsRelation.java create mode 100644 src/main/java/com/czg/mergedata/cur/mapper/CurConsGroupMapper.java create mode 100644 src/main/java/com/czg/mergedata/cur/mapper/CurConsGroupRelationMapper.java create mode 100644 src/main/java/com/czg/mergedata/cur/mapper/CurConsInfoMapper.java create mode 100644 src/main/java/com/czg/mergedata/cur/mapper/CurProdConsRelationMapper.java create mode 100644 src/main/java/com/czg/mergedata/cur/service/CurConsGroupRelationService.java create mode 100644 src/main/java/com/czg/mergedata/cur/service/CurConsGroupService.java create mode 100644 src/main/java/com/czg/mergedata/cur/service/CurConsInfoService.java create mode 100644 src/main/java/com/czg/mergedata/cur/service/CurProdConsRelationService.java create mode 100644 src/main/java/com/czg/mergedata/cur/service/impl/CurConsGroupRelationServiceImpl.java create mode 100644 src/main/java/com/czg/mergedata/cur/service/impl/CurConsGroupServiceImpl.java create mode 100644 src/main/java/com/czg/mergedata/cur/service/impl/CurConsInfoServiceImpl.java create mode 100644 src/main/java/com/czg/mergedata/cur/service/impl/CurProdConsRelationServiceImpl.java create mode 100644 src/main/java/com/czg/mergedata/old/entity/OldConsInfo.java create mode 100644 src/main/java/com/czg/mergedata/old/entity/OldConsType.java create mode 100644 src/main/java/com/czg/mergedata/old/entity/OldProskuCon.java create mode 100644 src/main/java/com/czg/mergedata/old/mapper/OldConsInfoMapper.java create mode 100644 src/main/java/com/czg/mergedata/old/mapper/OldConsTypeMapper.java create mode 100644 src/main/java/com/czg/mergedata/old/mapper/OldProskuConMapper.java create mode 100644 src/main/java/com/czg/mergedata/old/service/OldConsInfoService.java create mode 100644 src/main/java/com/czg/mergedata/old/service/OldConsTypeService.java create mode 100644 src/main/java/com/czg/mergedata/old/service/OldProskuConService.java create mode 100644 src/main/java/com/czg/mergedata/old/service/impl/OldConsInfoServiceImpl.java create mode 100644 src/main/java/com/czg/mergedata/old/service/impl/OldConsTypeServiceImpl.java create mode 100644 src/main/java/com/czg/mergedata/old/service/impl/OldProskuConServiceImpl.java create mode 100644 src/main/resources/mapper/cur/ConsGroupMapper.xml create mode 100644 src/main/resources/mapper/cur/ConsGroupRelationMapper.xml create mode 100644 src/main/resources/mapper/cur/ConsInfoMapper.xml create mode 100644 src/main/resources/mapper/cur/ProdConsRelationMapper.xml create mode 100644 src/main/resources/mapper/old/ConsInfoMapper.xml create mode 100644 src/main/resources/mapper/old/ConsTypeMapper.xml create mode 100644 src/main/resources/mapper/old/ProskuConMapper.xml diff --git a/src/main/java/com/czg/mergedata/common/utils/CodeGen.java b/src/main/java/com/czg/mergedata/common/utils/CodeGen.java index 161e2fc..5668584 100644 --- a/src/main/java/com/czg/mergedata/common/utils/CodeGen.java +++ b/src/main/java/com/czg/mergedata/common/utils/CodeGen.java @@ -18,8 +18,8 @@ public class CodeGen { private final static String DATABASE = "czg_cashier_test"; private final static String OLD_DATABASE = "fycashier"; -// private final static boolean IS_OLD_VERSION = false; - private final static boolean IS_OLD_VERSION = true; + private final static boolean IS_OLD_VERSION = false; +// private final static boolean IS_OLD_VERSION = true; public static void main(String[] args) { //配置数据源 @@ -81,7 +81,7 @@ public class CodeGen { //设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表 globalConfig.getStrategyConfig() .setTablePrefix("tb_") - .setGenerateTable("tb_product_stock_detail", "tb_product_stock_operate", "tb_product_stocktakin"); + .setGenerateTable("tb_prod_cons_relation"); EntityConfig entityConfig = globalConfig.getEntityConfig(); if (IS_OLD_VERSION) { diff --git a/src/main/java/com/czg/mergedata/controller/ShopInfoController.java b/src/main/java/com/czg/mergedata/controller/ShopInfoController.java index af76d7b..9d0c94e 100644 --- a/src/main/java/com/czg/mergedata/controller/ShopInfoController.java +++ b/src/main/java/com/czg/mergedata/controller/ShopInfoController.java @@ -43,6 +43,14 @@ public class ShopInfoController { @Resource private CurFreeDineConfigService curFreeDineConfigService; + @Resource + private CurConsInfoService curConsInfoService; + + @RequestMapping("/consInfo") + public CzgResult consInfo() { + return curConsInfoService.mergeConsData(); + } + @RequestMapping("/freeDineConfig") public CzgResult freeDineConfig() { return curFreeDineConfigService.mergeData(); diff --git a/src/main/java/com/czg/mergedata/cur/entity/CurConsGroup.java b/src/main/java/com/czg/mergedata/cur/entity/CurConsGroup.java new file mode 100644 index 0000000..350d15c --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/entity/CurConsGroup.java @@ -0,0 +1,63 @@ +package com.czg.mergedata.cur.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 耗材分组 实体类。 + * + * @author mac + * @since 2025-03-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_cons_group") +public class CurConsGroup implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @Id(keyType = KeyType.Auto) + private Long id; + + /** + * 店铺id + */ + private Long shopId; + + /** + * 分组名称 + */ + private String name; + + /** + * 状态 1 正常 0 禁用 + */ + private Integer status; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 更新 + */ + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/czg/mergedata/cur/entity/CurConsGroupRelation.java b/src/main/java/com/czg/mergedata/cur/entity/CurConsGroupRelation.java new file mode 100644 index 0000000..cbb0d30 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/entity/CurConsGroupRelation.java @@ -0,0 +1,47 @@ +package com.czg.mergedata.cur.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 耗材分组关联关系 实体类。 + * + * @author mac + * @since 2025-03-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_cons_group_relation") +public class CurConsGroupRelation implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 分组 id + */ + @Id + private Long groupId; + + /** + * 耗材 Id + */ + @Id + private Long consId; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/src/main/java/com/czg/mergedata/cur/entity/CurConsInfo.java b/src/main/java/com/czg/mergedata/cur/entity/CurConsInfo.java new file mode 100644 index 0000000..7916464 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/entity/CurConsInfo.java @@ -0,0 +1,109 @@ +package com.czg.mergedata.cur.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 耗材信息 实体类。 + * + * @author mac + * @since 2025-03-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_cons_info") +public class CurConsInfo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @Id(keyType = KeyType.Auto) + private Long id; + + /** + * 耗材分组id + */ + private Long consGroupId; + + /** + * 店铺id + */ + private Long shopId; + + /** + * 耗材名称 + */ + private String conName; + + /** + * 价格 + */ + private BigDecimal price; + + /** + * 库存值 + */ + private BigDecimal stockNumber; + + /** + * 状态 1 启用 0 禁用 + */ + private Integer status; + + /** + * 单位值 + */ + private String conUnit; + + /** + * 耗材预警值 + */ + private BigDecimal conWarning; + + /** + * 是否检测耗材: 1 检测 0 不检测 + */ + private Integer isStock; + + /** + * 第二单位 + */ + private String conUnitTwo; + + /** + * 第二单位转换数量 + */ + private BigDecimal conUnitTwoConvert; + + /** + * 默认入库单位 + */ + private String defaultUnit; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 更新时间 + */ + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/czg/mergedata/cur/entity/CurProdConsRelation.java b/src/main/java/com/czg/mergedata/cur/entity/CurProdConsRelation.java new file mode 100644 index 0000000..0770e54 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/entity/CurProdConsRelation.java @@ -0,0 +1,61 @@ +package com.czg.mergedata.cur.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 商品耗材绑定关系 实体类。 + * + * @author mac + * @since 2025-03-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_prod_cons_relation") +public class CurProdConsRelation implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Long id; + + /** + * 店铺id + */ + private Long shopId; + + /** + * 商品id + */ + private Long productId; + + /** + * 耗材id + */ + private Long consInfoId; + + /** + * 单位消耗值 + */ + private BigDecimal surplusStock; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + +} diff --git a/src/main/java/com/czg/mergedata/cur/mapper/CurConsGroupMapper.java b/src/main/java/com/czg/mergedata/cur/mapper/CurConsGroupMapper.java new file mode 100644 index 0000000..9495433 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/mapper/CurConsGroupMapper.java @@ -0,0 +1,16 @@ +package com.czg.mergedata.cur.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.mergedata.cur.entity.CurConsGroup; +import org.apache.ibatis.annotations.Select; + +/** + * 耗材分组 映射层。 + * + * @author mac + * @since 2025-03-17 + */ +public interface CurConsGroupMapper extends BaseMapper { + @Select("truncate tb_cons_group") + void truncateTable(); +} diff --git a/src/main/java/com/czg/mergedata/cur/mapper/CurConsGroupRelationMapper.java b/src/main/java/com/czg/mergedata/cur/mapper/CurConsGroupRelationMapper.java new file mode 100644 index 0000000..8ccfcb6 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/mapper/CurConsGroupRelationMapper.java @@ -0,0 +1,16 @@ +package com.czg.mergedata.cur.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.mergedata.cur.entity.CurConsGroupRelation; +import org.apache.ibatis.annotations.Select; + +/** + * 耗材分组关联关系 映射层。 + * + * @author mac + * @since 2025-03-17 + */ +public interface CurConsGroupRelationMapper extends BaseMapper { + @Select("truncate tb_cons_group_relation") + void truncateTable(); +} diff --git a/src/main/java/com/czg/mergedata/cur/mapper/CurConsInfoMapper.java b/src/main/java/com/czg/mergedata/cur/mapper/CurConsInfoMapper.java new file mode 100644 index 0000000..96ac000 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/mapper/CurConsInfoMapper.java @@ -0,0 +1,16 @@ +package com.czg.mergedata.cur.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.mergedata.cur.entity.CurConsInfo; +import org.apache.ibatis.annotations.Select; + +/** + * 耗材信息 映射层。 + * + * @author mac + * @since 2025-03-17 + */ +public interface CurConsInfoMapper extends BaseMapper { + @Select("truncate tb_cons_info") + void truncateTable(); +} diff --git a/src/main/java/com/czg/mergedata/cur/mapper/CurProdConsRelationMapper.java b/src/main/java/com/czg/mergedata/cur/mapper/CurProdConsRelationMapper.java new file mode 100644 index 0000000..79caaef --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/mapper/CurProdConsRelationMapper.java @@ -0,0 +1,17 @@ +package com.czg.mergedata.cur.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.mergedata.cur.entity.CurProdConsRelation; +import org.apache.ibatis.annotations.Select; + +/** + * 商品耗材绑定关系 映射层。 + * + * @author mac + * @since 2025-03-17 + */ +public interface CurProdConsRelationMapper extends BaseMapper { + + @Select("truncate tb_prod_cons_relation") + void truncateTable(); +} diff --git a/src/main/java/com/czg/mergedata/cur/service/CurConsGroupRelationService.java b/src/main/java/com/czg/mergedata/cur/service/CurConsGroupRelationService.java new file mode 100644 index 0000000..cb1e8c4 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/service/CurConsGroupRelationService.java @@ -0,0 +1,14 @@ +package com.czg.mergedata.cur.service; + +import com.mybatisflex.core.service.IService; +import com.czg.mergedata.cur.entity.CurConsGroupRelation; + +/** + * 耗材分组关联关系 服务层。 + * + * @author mac + * @since 2025-03-17 + */ +public interface CurConsGroupRelationService extends IService { + +} diff --git a/src/main/java/com/czg/mergedata/cur/service/CurConsGroupService.java b/src/main/java/com/czg/mergedata/cur/service/CurConsGroupService.java new file mode 100644 index 0000000..500cfc4 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/service/CurConsGroupService.java @@ -0,0 +1,14 @@ +package com.czg.mergedata.cur.service; + +import com.mybatisflex.core.service.IService; +import com.czg.mergedata.cur.entity.CurConsGroup; + +/** + * 耗材分组 服务层。 + * + * @author mac + * @since 2025-03-17 + */ +public interface CurConsGroupService extends IService { + +} diff --git a/src/main/java/com/czg/mergedata/cur/service/CurConsInfoService.java b/src/main/java/com/czg/mergedata/cur/service/CurConsInfoService.java new file mode 100644 index 0000000..5039d37 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/service/CurConsInfoService.java @@ -0,0 +1,17 @@ +package com.czg.mergedata.cur.service; + +import com.czg.mergedata.common.resp.CzgResult; +import com.mybatisflex.core.service.IService; +import com.czg.mergedata.cur.entity.CurConsInfo; + +/** + * 耗材信息 服务层。 + * + * @author mac + * @since 2025-03-17 + */ +public interface CurConsInfoService extends IService { + + CzgResult mergeConsData(); + +} diff --git a/src/main/java/com/czg/mergedata/cur/service/CurProdConsRelationService.java b/src/main/java/com/czg/mergedata/cur/service/CurProdConsRelationService.java new file mode 100644 index 0000000..cd7f525 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/service/CurProdConsRelationService.java @@ -0,0 +1,14 @@ +package com.czg.mergedata.cur.service; + +import com.mybatisflex.core.service.IService; +import com.czg.mergedata.cur.entity.CurProdConsRelation; + +/** + * 商品耗材绑定关系 服务层。 + * + * @author mac + * @since 2025-03-17 + */ +public interface CurProdConsRelationService extends IService { + +} diff --git a/src/main/java/com/czg/mergedata/cur/service/impl/CurConsGroupRelationServiceImpl.java b/src/main/java/com/czg/mergedata/cur/service/impl/CurConsGroupRelationServiceImpl.java new file mode 100644 index 0000000..1752cab --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/service/impl/CurConsGroupRelationServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.mergedata.cur.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.mergedata.cur.entity.CurConsGroupRelation; +import com.czg.mergedata.cur.mapper.CurConsGroupRelationMapper; +import com.czg.mergedata.cur.service.CurConsGroupRelationService; +import org.springframework.stereotype.Service; + +/** + * 耗材分组关联关系 服务层实现。 + * + * @author mac + * @since 2025-03-17 + */ +@Service +public class CurConsGroupRelationServiceImpl extends ServiceImpl implements CurConsGroupRelationService{ + +} diff --git a/src/main/java/com/czg/mergedata/cur/service/impl/CurConsGroupServiceImpl.java b/src/main/java/com/czg/mergedata/cur/service/impl/CurConsGroupServiceImpl.java new file mode 100644 index 0000000..00d5e36 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/service/impl/CurConsGroupServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.mergedata.cur.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.mergedata.cur.entity.CurConsGroup; +import com.czg.mergedata.cur.mapper.CurConsGroupMapper; +import com.czg.mergedata.cur.service.CurConsGroupService; +import org.springframework.stereotype.Service; + +/** + * 耗材分组 服务层实现。 + * + * @author mac + * @since 2025-03-17 + */ +@Service +public class CurConsGroupServiceImpl extends ServiceImpl implements CurConsGroupService{ + +} diff --git a/src/main/java/com/czg/mergedata/cur/service/impl/CurConsInfoServiceImpl.java b/src/main/java/com/czg/mergedata/cur/service/impl/CurConsInfoServiceImpl.java new file mode 100644 index 0000000..bd0c897 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/service/impl/CurConsInfoServiceImpl.java @@ -0,0 +1,143 @@ +package com.czg.mergedata.cur.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.czg.mergedata.common.resp.CzgResult; +import com.czg.mergedata.cur.entity.CurConsGroup; +import com.czg.mergedata.cur.entity.CurConsInfo; +import com.czg.mergedata.cur.entity.CurProdConsRelation; +import com.czg.mergedata.cur.mapper.CurConsGroupMapper; +import com.czg.mergedata.cur.mapper.CurConsInfoMapper; +import com.czg.mergedata.cur.mapper.CurProdConsRelationMapper; +import com.czg.mergedata.cur.service.CurConsGroupService; +import com.czg.mergedata.cur.service.CurConsInfoService; +import com.czg.mergedata.cur.service.CurProdConsRelationService; +import com.czg.mergedata.old.entity.OldConsType; +import com.czg.mergedata.old.entity.OldProskuCon; +import com.czg.mergedata.old.service.OldConsInfoService; +import com.czg.mergedata.old.service.OldConsTypeService; +import com.czg.mergedata.old.service.OldProskuConService; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.*; + +/** + * 耗材信息 服务层实现。 + * + * @author mac + * @since 2025-03-17 + */ +@Service +public class CurConsInfoServiceImpl extends ServiceImpl implements CurConsInfoService { + @Resource + private CurConsGroupMapper curConsGroupMapper; + + @Resource + private CurConsGroupService curConsGroupService; + + @Resource + private CurProdConsRelationMapper curProdConsRelationMapper; + + @Resource + private CurProdConsRelationService curProdConsRelationService; + + @Resource + private OldConsTypeService oldConsTypeService; + + @Resource + private OldConsInfoService oldConsInfoService; + + @Resource + private OldProskuConService oldProskuConService; + + @Override + @Transactional + public CzgResult mergeConsData() { + getMapper().truncateTable(); + curConsGroupMapper.truncateTable(); + curProdConsRelationMapper.truncateTable(); + + mergeConsGroup(); + mergeConsInfo(); + mergeProdConsRelation(); + + return CzgResult.success("合并耗材数据成功"); + } + + private void mergeConsGroup() { + List consTypes = oldConsTypeService.list(); + List curConsGroups = new ArrayList<>(); + + for (OldConsType oldConsType : consTypes) { + CurConsGroup curConsGroup = new CurConsGroup(); + curConsGroup.setId(Long.valueOf(oldConsType.getId())); + curConsGroup.setShopId(Long.valueOf(oldConsType.getShopId())); + curConsGroup.setName(oldConsType.getConTypeName()); + curConsGroup.setStatus(Integer.valueOf(oldConsType.getStatus())); + curConsGroup.setCreateTime(oldConsType.getCreateTime()); + curConsGroup.setUpdateTime(oldConsType.getUpdateTime()); + + curConsGroups.add(curConsGroup); + } + + curConsGroupService.saveBatch(curConsGroups); + } + + private void mergeConsInfo() { + List curConsInfos = new ArrayList<>(); + + oldConsInfoService.list().forEach(oldConsInfo -> { + CurConsInfo curConsInfo = new CurConsInfo(); + curConsInfo.setId(Long.valueOf(oldConsInfo.getId())); + curConsInfo.setShopId(oldConsInfo.getShopId() == null ? 1L :Long.valueOf(oldConsInfo.getShopId())); + curConsInfo.setConsGroupId(Long.valueOf(oldConsInfo.getConTypeId())); + curConsInfo.setConName(oldConsInfo.getConName()); + curConsInfo.setPrice(oldConsInfo.getPrice()); + curConsInfo.setStockNumber(oldConsInfo.getStockNumber()); + curConsInfo.setStatus(StrUtil.isBlank(oldConsInfo.getStatus()) ? 1 :Integer.parseInt(oldConsInfo.getStatus())); + curConsInfo.setConUnit(oldConsInfo.getConUnit()); + curConsInfo.setConWarning(oldConsInfo.getConWarning()); + curConsInfo.setIsStock(oldConsInfo.getIsCheck() == null ? 0 : Integer.parseInt(oldConsInfo.getIsCheck())); + curConsInfo.setConUnitTwo(oldConsInfo.getConUnitTwo()); + curConsInfo.setConUnitTwoConvert(oldConsInfo.getConUnitTwoConvert()); + curConsInfo.setDefaultUnit(oldConsInfo.getDefaultUnit()); + curConsInfo.setCreateTime(oldConsInfo.getCreateTime()); + curConsInfo.setUpdateTime(oldConsInfo.getUpdateTime()); + }); + + saveBatch(curConsInfos); + } + + private void mergeProdConsRelation() { + List curProdConsRelations = new ArrayList<>(); + + Map> oldProskuConMap = new HashMap<>(); + + List oldProskuCons = oldProskuConService.list(); + for (OldProskuCon oldProskuCon : oldProskuCons) { + if (!oldProskuConMap.containsKey(oldProskuCon.getProductId())) { + oldProskuConMap.put(oldProskuCon.getProductId(), new HashSet<>()); + } + Set proskuConList = oldProskuConMap.get(oldProskuCon.getProductId()); + + proskuConList.add(oldProskuCon); + } + + oldProskuConMap.forEach((productId, proskuConList) -> proskuConList.forEach(oldProskuCon -> { + CurProdConsRelation curProdConsRelation = new CurProdConsRelation(); + curProdConsRelation.setId(Long.valueOf(oldProskuCon.getId())); + curProdConsRelation.setShopId(Long.valueOf(oldProskuCon.getShopId())); + curProdConsRelation.setProductId(Long.valueOf(oldProskuCon.getProductId())); + curProdConsRelation.setConsInfoId(Long.valueOf(oldProskuCon.getConInfoId())); + curProdConsRelation.setSurplusStock(oldProskuCon.getSurplusStock()); + curProdConsRelation.setCreateTime(oldProskuCon.getCreateTime() == null ? LocalDateTime.now() : oldProskuCon.getCreateTime()); + + curProdConsRelations.add(curProdConsRelation); + })); + + curProdConsRelationService.saveBatch(curProdConsRelations); + } +} diff --git a/src/main/java/com/czg/mergedata/cur/service/impl/CurProdConsRelationServiceImpl.java b/src/main/java/com/czg/mergedata/cur/service/impl/CurProdConsRelationServiceImpl.java new file mode 100644 index 0000000..6f7a113 --- /dev/null +++ b/src/main/java/com/czg/mergedata/cur/service/impl/CurProdConsRelationServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.mergedata.cur.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.mergedata.cur.entity.CurProdConsRelation; +import com.czg.mergedata.cur.mapper.CurProdConsRelationMapper; +import com.czg.mergedata.cur.service.CurProdConsRelationService; +import org.springframework.stereotype.Service; + +/** + * 商品耗材绑定关系 服务层实现。 + * + * @author mac + * @since 2025-03-17 + */ +@Service +public class CurProdConsRelationServiceImpl extends ServiceImpl implements CurProdConsRelationService{ + +} diff --git a/src/main/java/com/czg/mergedata/old/entity/OldConsInfo.java b/src/main/java/com/czg/mergedata/old/entity/OldConsInfo.java new file mode 100644 index 0000000..5c3786c --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/entity/OldConsInfo.java @@ -0,0 +1,128 @@ +package com.czg.mergedata.old.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 耗材信息 实体类。 + * + * @author mac + * @since 2025-03-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_cons_info") +public class OldConsInfo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Integer id; + + /** + * 店铺id + */ + private Integer shopId; + + /** + * 耗材类型id + */ + private Integer conTypeId; + + /** + * 耗材类型名称 + */ + private String conTypeName; + + /** + * 耗材代码 + */ + private String conCode; + + /** + * 耗材名称 + */ + private String conName; + + /** + * 价格 + */ + private BigDecimal price; + + /** + * 库存值 + */ + private BigDecimal stockNumber; + + /** + * 消耗总量 + */ + private BigDecimal stockConsume; + + /** + * 状态 1 启用 0 禁用 + */ + private String status; + + /** + * 单位值 + */ + private String conUnit; + + /** + * 最近一次入库量 + */ + private BigDecimal lasterInStock; + + /** + * 耗材预警值 + */ + private BigDecimal conWarning; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 更新时间 + */ + private LocalDateTime updateTime; + + /** + * 是否检测耗材: 1 检测 0 不检测 + */ + private String isCheck; + + private BigDecimal balance; + + /** + * 第二单位 + */ + private String conUnitTwo; + + /** + * 第二单位转换数量 + */ + private BigDecimal conUnitTwoConvert; + + /** + * 默认入库单位 + */ + private String defaultUnit; + +} diff --git a/src/main/java/com/czg/mergedata/old/entity/OldConsType.java b/src/main/java/com/czg/mergedata/old/entity/OldConsType.java new file mode 100644 index 0000000..ee6991d --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/entity/OldConsType.java @@ -0,0 +1,65 @@ +package com.czg.mergedata.old.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 耗材分类 实体类。 + * + * @author mac + * @since 2025-03-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_cons_type") +public class OldConsType implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Integer id; + + /** + * 店铺id + */ + private Integer shopId; + + /** + * 耗材类型代码 + */ + private String conTypeCode; + + /** + * 耗材名称 + */ + private String conTypeName; + + /** + * 状态 1 正常 0 禁用 + */ + private String status; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 更新 + */ + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/czg/mergedata/old/entity/OldProskuCon.java b/src/main/java/com/czg/mergedata/old/entity/OldProskuCon.java new file mode 100644 index 0000000..b8de3c6 --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/entity/OldProskuCon.java @@ -0,0 +1,89 @@ +package com.czg.mergedata.old.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 实体类。 + * + * @author mac + * @since 2025-03-17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_prosku_con") +public class OldProskuCon implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Integer id; + + /** + * 店铺id + */ + private Integer shopId; + + /** + * 商品id + */ + private Integer productId; + + /** + * 商品规格id + */ + private Integer productSkuId; + + /** + * 耗材id + */ + private Integer conInfoId; + + /** + * 单位消耗值 + */ + private BigDecimal surplusStock; + + /** + * 状态 1 启用 0 禁用 + */ + private String status; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + @Override + public int hashCode() { + return conInfoId; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + + if (obj instanceof OldProskuCon other) { + return conInfoId.equals(other.conInfoId); + } + + return false; + } + +} diff --git a/src/main/java/com/czg/mergedata/old/mapper/OldConsInfoMapper.java b/src/main/java/com/czg/mergedata/old/mapper/OldConsInfoMapper.java new file mode 100644 index 0000000..a76e1ab --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/mapper/OldConsInfoMapper.java @@ -0,0 +1,16 @@ +package com.czg.mergedata.old.mapper; + +import com.mybatisflex.annotation.UseDataSource; +import com.mybatisflex.core.BaseMapper; +import com.czg.mergedata.old.entity.OldConsInfo; + +/** + * 耗材信息 映射层。 + * + * @author mac + * @since 2025-03-17 + */ +@UseDataSource("ds2") +public interface OldConsInfoMapper extends BaseMapper { + +} diff --git a/src/main/java/com/czg/mergedata/old/mapper/OldConsTypeMapper.java b/src/main/java/com/czg/mergedata/old/mapper/OldConsTypeMapper.java new file mode 100644 index 0000000..9296110 --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/mapper/OldConsTypeMapper.java @@ -0,0 +1,16 @@ +package com.czg.mergedata.old.mapper; + +import com.mybatisflex.annotation.UseDataSource; +import com.mybatisflex.core.BaseMapper; +import com.czg.mergedata.old.entity.OldConsType; + +/** + * 耗材分类 映射层。 + * + * @author mac + * @since 2025-03-17 + */ +@UseDataSource("ds2") +public interface OldConsTypeMapper extends BaseMapper { + +} diff --git a/src/main/java/com/czg/mergedata/old/mapper/OldProskuConMapper.java b/src/main/java/com/czg/mergedata/old/mapper/OldProskuConMapper.java new file mode 100644 index 0000000..9a0e506 --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/mapper/OldProskuConMapper.java @@ -0,0 +1,16 @@ +package com.czg.mergedata.old.mapper; + +import com.mybatisflex.annotation.UseDataSource; +import com.mybatisflex.core.BaseMapper; +import com.czg.mergedata.old.entity.OldProskuCon; + +/** + * 映射层。 + * + * @author mac + * @since 2025-03-17 + */ +@UseDataSource("ds2") +public interface OldProskuConMapper extends BaseMapper { + +} diff --git a/src/main/java/com/czg/mergedata/old/service/OldConsInfoService.java b/src/main/java/com/czg/mergedata/old/service/OldConsInfoService.java new file mode 100644 index 0000000..4a93f0c --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/service/OldConsInfoService.java @@ -0,0 +1,14 @@ +package com.czg.mergedata.old.service; + +import com.mybatisflex.core.service.IService; +import com.czg.mergedata.old.entity.OldConsInfo; + +/** + * 耗材信息 服务层。 + * + * @author mac + * @since 2025-03-17 + */ +public interface OldConsInfoService extends IService { + +} diff --git a/src/main/java/com/czg/mergedata/old/service/OldConsTypeService.java b/src/main/java/com/czg/mergedata/old/service/OldConsTypeService.java new file mode 100644 index 0000000..bda1027 --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/service/OldConsTypeService.java @@ -0,0 +1,14 @@ +package com.czg.mergedata.old.service; + +import com.mybatisflex.core.service.IService; +import com.czg.mergedata.old.entity.OldConsType; + +/** + * 耗材分类 服务层。 + * + * @author mac + * @since 2025-03-17 + */ +public interface OldConsTypeService extends IService { + +} diff --git a/src/main/java/com/czg/mergedata/old/service/OldProskuConService.java b/src/main/java/com/czg/mergedata/old/service/OldProskuConService.java new file mode 100644 index 0000000..e2baa97 --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/service/OldProskuConService.java @@ -0,0 +1,14 @@ +package com.czg.mergedata.old.service; + +import com.mybatisflex.core.service.IService; +import com.czg.mergedata.old.entity.OldProskuCon; + +/** + * 服务层。 + * + * @author mac + * @since 2025-03-17 + */ +public interface OldProskuConService extends IService { + +} diff --git a/src/main/java/com/czg/mergedata/old/service/impl/OldConsInfoServiceImpl.java b/src/main/java/com/czg/mergedata/old/service/impl/OldConsInfoServiceImpl.java new file mode 100644 index 0000000..9f6c8ab --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/service/impl/OldConsInfoServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.mergedata.old.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.mergedata.old.entity.OldConsInfo; +import com.czg.mergedata.old.mapper.OldConsInfoMapper; +import com.czg.mergedata.old.service.OldConsInfoService; +import org.springframework.stereotype.Service; + +/** + * 耗材信息 服务层实现。 + * + * @author mac + * @since 2025-03-17 + */ +@Service +public class OldConsInfoServiceImpl extends ServiceImpl implements OldConsInfoService{ + +} diff --git a/src/main/java/com/czg/mergedata/old/service/impl/OldConsTypeServiceImpl.java b/src/main/java/com/czg/mergedata/old/service/impl/OldConsTypeServiceImpl.java new file mode 100644 index 0000000..1dd0855 --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/service/impl/OldConsTypeServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.mergedata.old.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.mergedata.old.entity.OldConsType; +import com.czg.mergedata.old.mapper.OldConsTypeMapper; +import com.czg.mergedata.old.service.OldConsTypeService; +import org.springframework.stereotype.Service; + +/** + * 耗材分类 服务层实现。 + * + * @author mac + * @since 2025-03-17 + */ +@Service +public class OldConsTypeServiceImpl extends ServiceImpl implements OldConsTypeService{ + +} diff --git a/src/main/java/com/czg/mergedata/old/service/impl/OldProskuConServiceImpl.java b/src/main/java/com/czg/mergedata/old/service/impl/OldProskuConServiceImpl.java new file mode 100644 index 0000000..1fecd44 --- /dev/null +++ b/src/main/java/com/czg/mergedata/old/service/impl/OldProskuConServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.mergedata.old.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.mergedata.old.entity.OldProskuCon; +import com.czg.mergedata.old.mapper.OldProskuConMapper; +import com.czg.mergedata.old.service.OldProskuConService; +import org.springframework.stereotype.Service; + +/** + * 服务层实现。 + * + * @author mac + * @since 2025-03-17 + */ +@Service +public class OldProskuConServiceImpl extends ServiceImpl implements OldProskuConService{ + +} diff --git a/src/main/resources/mapper/cur/ConsGroupMapper.xml b/src/main/resources/mapper/cur/ConsGroupMapper.xml new file mode 100644 index 0000000..e996aba --- /dev/null +++ b/src/main/resources/mapper/cur/ConsGroupMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/src/main/resources/mapper/cur/ConsGroupRelationMapper.xml b/src/main/resources/mapper/cur/ConsGroupRelationMapper.xml new file mode 100644 index 0000000..2344bb4 --- /dev/null +++ b/src/main/resources/mapper/cur/ConsGroupRelationMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/src/main/resources/mapper/cur/ConsInfoMapper.xml b/src/main/resources/mapper/cur/ConsInfoMapper.xml new file mode 100644 index 0000000..bed42e7 --- /dev/null +++ b/src/main/resources/mapper/cur/ConsInfoMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/src/main/resources/mapper/cur/ProdConsRelationMapper.xml b/src/main/resources/mapper/cur/ProdConsRelationMapper.xml new file mode 100644 index 0000000..65a1587 --- /dev/null +++ b/src/main/resources/mapper/cur/ProdConsRelationMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/src/main/resources/mapper/old/ConsInfoMapper.xml b/src/main/resources/mapper/old/ConsInfoMapper.xml new file mode 100644 index 0000000..9481d0f --- /dev/null +++ b/src/main/resources/mapper/old/ConsInfoMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/src/main/resources/mapper/old/ConsTypeMapper.xml b/src/main/resources/mapper/old/ConsTypeMapper.xml new file mode 100644 index 0000000..08e3a64 --- /dev/null +++ b/src/main/resources/mapper/old/ConsTypeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/src/main/resources/mapper/old/ProskuConMapper.xml b/src/main/resources/mapper/old/ProskuConMapper.xml new file mode 100644 index 0000000..a07cf19 --- /dev/null +++ b/src/main/resources/mapper/old/ProskuConMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/收银机数据迁移关系.md b/收银机数据迁移关系.md index 12fe076..ca7a074 100644 --- a/收银机数据迁移关系.md +++ b/收银机数据迁移关系.md @@ -204,4 +204,12 @@ - tb_free_dine_config 表 +### 29. 耗材 +> /merge/shopInfo/consInfo +#### 执行表 +- tb_cons_info 表 +- tb_cons_group 表 +- tb_prod_cons_relation 表 + +