package com.matrix.system.dataMove; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.matrix.component.redis.RedisClient; import com.matrix.core.tools.StringUtils; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.SysUsersDao; import com.matrix.system.common.tools.PasswordUtil; import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.*; import com.matrix.system.hive.service.SysVipInfoService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.security.NoSuchAlgorithmException; import java.util.*; /** * @author wzy * @date 2021-03-18 **/ @Service public class DateMoveServiceImpl { @Autowired private JdbcTemplate jdbcTemplate; @Autowired private SysShopInfoDao sysShopInfoDao; @Autowired private SysUsersDao sysUsersDao; @Autowired private SysVipLevelDao sysVipLevelDao; @Autowired private SysVipInfoDao sysVipInfoDao; @Autowired private SysVipInfoService sysVipInfoService; @Autowired private SysSupplierTypeDao sysSupplierTypeDao; @Autowired private SysSupplierInfoDao sysSupplierInfoDao; @Autowired private ShoppingGoodsCategoryDao shoppingGoodsCategoryDao; @Autowired private SysGoodsTypeDao sysGoodsTypeDao; @Autowired private ShoppingGoodsDao shoppingGoodsDao; @Autowired private ShoppingGoodsAssembleDao shoppingGoodsAssembleDao; @Autowired private MoneyCardUseDao moneyCardUseDao; @Autowired private RedisClient redisClient; private Long companyId = 35L; private Long shopId = 38L; public List> dataMove() { return jdbcTemplate.queryForList("select * from sys_vip_info limit 10"); } public List mapsToListBean(List> maps, Class t) { List list = new ArrayList<>(); for (Map map : maps) { String s = JSONObject.toJSONString(map); T object = JSONObject.parseObject(s, t); list.add(object); } return list; } public T mapToBane(Map map, Class t) { String s = JSONObject.toJSONString(map); return JSONObject.parseObject(s, t); } /** * 旧系统商店数据 * * @return */ @DS("slave") public List oldShopInfo() { List> maps = jdbcTemplate.queryForList("select * from sys_shop_info"); List shopInfos = new ArrayList<>(); for (Map map : maps) { String s = JSONObject.toJSONString(map); SysShopInfo sysShopInfo = JSONObject.parseObject(s, SysShopInfo.class); shopInfos.add(sysShopInfo); } return shopInfos; } public void toNewShopInfo(List shopInfos) { if (CollUtil.isNotEmpty(shopInfos)) { Map oldAndNewId = new HashMap<>(); for (SysShopInfo shopInfo : shopInfos) { if (shopInfo.getShopName().equals("总部")) { shopInfo.setShopType(1); shopInfo.setIsOpenNet(2); } else { shopInfo.setShopType(2); shopInfo.setIsOpenNet(1); } shopInfo.setShopShortName(shopInfo.getShopName()); shopInfo.setCompanyId(companyId); SysShopInfo query = new SysShopInfo(); query.setShopNo(shopInfo.getShopNo()); Long oldId = shopInfo.getId(); shopInfo.setId(null); // TODO 若迁往正式环境,这里需要变动 if (!shopInfo.getShopName().contains("美度") && !shopInfo.getShopName().contains("总店")) { sysShopInfoDao.insert(shopInfo); oldAndNewId.put(oldId, shopInfo.getId()); } else { SysShopInfo sysShopInfo = sysShopInfoDao.selectByShopName(shopInfo.getShopName()); oldAndNewId.put(oldId, sysShopInfo.getId()); } } redisClient.saveMapValue("shopId", oldAndNewId); } } @DS("slave") public List oldSysUsers() throws UnsupportedEncodingException, NoSuchAlgorithmException { List> maps = jdbcTemplate.queryForList("select * from users"); List list = new ArrayList<>(); String shopIds = redisClient.getCachedValue("shopId"); Map shopMap = JSONObject.parseObject(shopIds, Map.class); for (Map map : maps) { SysUsers sysUsers = new SysUsers(); sysUsers.setSuAccount((String) map.get("account")); sysUsers.setSuId((Long) map.get("id")); sysUsers.setSuName((String) map.get("name")); sysUsers.setSuTel((String) map.get("tel")); sysUsers.setSuPhoto((String) map.get("photo")); sysUsers.setSuEmail((String) map.get("email")); sysUsers.setSuUserType((String) map.get("user_type")); sysUsers.setSuAccountStatus((String) map.get("account_status")); sysUsers.setSuValid("Y"); sysUsers.setCompanyId(companyId); Long aaa = (Long) map.get("shop_id"); System.out.println(aaa); if (aaa != null) { Integer shopId = (Integer) shopMap.get(aaa.toString()); if (shopId != null) { sysUsers.setShopId(Long.parseLong(shopId.toString())); } } sysUsers.setSuRegisterTime((Date) map.get("register_time")); sysUsers.setCreateBy(AppConstance.SYSTEM_USER); sysUsers.setUpdateBy(AppConstance.SYSTEM_USER); sysUsers.setSuPassword(PasswordUtil.getEncrypUserPwd(sysUsers)); list.add(sysUsers); } return list; } @Transactional(rollbackFor = Exception.class) public void newSysUsers(List list) { if (CollUtil.isNotEmpty(list)) { Map sysUsersOldAndNew = new HashMap<>(); for (SysUsers sysUsers : list) { Long oldId = sysUsers.getSuId(); sysUsers.setSuId(null); sysUsersDao.insert(sysUsers); sysUsersOldAndNew.put(oldId, sysUsers.getSuId()); } redisClient.saveMapValue("sys_users", sysUsersOldAndNew); } } @DS("slave") public List vipLevelOld() { List> maps = jdbcTemplate.queryForList("select * from sys_vip_level"); return mapsToListBean(maps, SysVipLevel.class); } @Transactional(rollbackFor = Exception.class) public void vipLevelNew(List list) { if (CollUtil.isNotEmpty(list)) { Map ids = new HashMap<>(); for (SysVipLevel sysVipLevel : list) { Long oldId = sysVipLevel.getId(); sysVipLevel.setId(null); sysVipLevel.setCompanyId(companyId); sysVipLevel.setShopId(38L); sysVipLevelDao.insert(sysVipLevel); ids.put(oldId, sysVipLevel.getId()); } redisClient.saveMapValue("vip_level", ids); } } @DS("slave") public List vipInfoOld() { List> maps = jdbcTemplate.queryForList("select * from sys_vip_info"); return mapsToListBean(maps, SysVipInfo.class); } @Transactional(rollbackFor = Exception.class) public void vipInfoNew(List list) { if (CollUtil.isNotEmpty(list)) { Map vipInfoIds = new HashMap<>(); String shopIds = redisClient.getCachedValue("shopId"); Map shopMap = JSONObject.parseObject(shopIds, Map.class); String sysUsersIds = redisClient.getCachedValue("sys_users"); Map sysUsersMap = JSONObject.parseObject(sysUsersIds, Map.class); String vipLevelIds = redisClient.getCachedValue("vip_level"); Map vipLevelIdsMap = JSONObject.parseObject(vipLevelIds, Map.class); for (SysVipInfo sysVipInfo : list) { Long shopId = sysVipInfo.getShopId(); if (shopId != null) { Object newId = shopMap.get(shopId.toString()); if (newId != null) { sysVipInfo.setShopId(Long.parseLong(newId.toString())); } } Long staffId = sysVipInfo.getStaffId(); if (staffId != null) { Object o = sysUsersMap.get(staffId.toString()); if (o != null) { sysVipInfo.setStaffId(Long.parseLong(o.toString())); } } Long levelId = sysVipInfo.getLevelId(); if (levelId != null) { Object o = vipLevelIdsMap.get(levelId.toString()); if (o != null) { sysVipInfo.setLevelId(Long.parseLong(o.toString())); } } sysVipInfo.setCompanyId(companyId); Long oldId = sysVipInfo.getId(); sysVipInfo.setId(null); if (StrUtil.isNotBlank(sysVipInfo.getVipName())) { sysVipInfo.setZjm(StringUtils.toHanyuPinyin(sysVipInfo.getVipName()) + "," + StringUtils.toHeadWordHanyuPinyin(sysVipInfo.getVipName())); } sysVipInfoDao.insert(sysVipInfo); vipInfoIds.put(oldId, sysVipInfo.getId()); sysVipInfoService.addVipDefaultCard(sysVipInfo.getId()); } redisClient.saveMapValue("vip_info", vipInfoIds); } } @DS("slave") public List supplierTypeOld() { List> maps = jdbcTemplate.queryForList("select * from sys_supplier_type"); return mapsToListBean(maps, SysSupplierType.class); } @Transactional(rollbackFor = Exception.class) public void supplierNew(List list) { if (CollUtil.isNotEmpty(list)) { Map maps = new HashMap<>(); for (SysSupplierType sysSupplierType : list) { sysSupplierType.setShopId(shopId); sysSupplierType.setCompanyId(companyId); Long oldId = sysSupplierType.getId(); sysSupplierType.setId(null); sysSupplierTypeDao.insert(sysSupplierType); maps.put(oldId, sysSupplierType.getId()); } redisClient.saveMapValue("supplier_type", maps); } } @DS("slave") public List supplierInfoOld() { List> maps = jdbcTemplate.queryForList("select * from sys_supplier_info"); return mapsToListBean(maps, SysSupplierInfo.class); } @Transactional(rollbackFor = Exception.class) public void supplierInfoNew(List list) { if (CollUtil.isNotEmpty(list)) { Map maps = new HashMap<>(); String supplierTypeIds = redisClient.getCachedValue("supplier_type"); Map supplierTypeMap = JSONObject.parseObject(supplierTypeIds, Map.class); for (SysSupplierInfo sysSupplierInfo : list) { sysSupplierInfo.setShopId(shopId); sysSupplierInfo.setCompanyId(companyId); Object o = supplierTypeMap.get(sysSupplierInfo.getSupplType().toString()); if (o != null) { sysSupplierInfo.setSupplType(Long.parseLong(o.toString())); } Long oldId = sysSupplierInfo.getId(); sysSupplierInfo.setId(null); sysSupplierInfo.setSupplNo("MD" + sysSupplierInfo.getSupplNo()); sysSupplierInfoDao.insert(sysSupplierInfo); maps.put(oldId, sysSupplierInfo.getId()); } redisClient.saveMapValue("supplier_info", maps); } } @DS("slave") public List goodsCategoryOld() { String sql = "select * from shopping_goods_category"; List> maps = jdbcTemplate.queryForList(sql); return mapsToListBean(maps, ShoppingGoodsCategory.class); } @Transactional(rollbackFor = Exception.class) public void goodsCategoryNew(List list) { if (CollUtil.isNotEmpty(list)) { Map map = new HashMap<>(); for (ShoppingGoodsCategory shoppingGoodsCategory : list) { shoppingGoodsCategory.setShopId(shopId); shoppingGoodsCategory.setCompanyId(companyId); Long oldId = shoppingGoodsCategory.getId(); shoppingGoodsCategory.setId(null); shoppingGoodsCategoryDao.insert(shoppingGoodsCategory); map.put(oldId, shoppingGoodsCategory.getId()); } redisClient.saveMapValue("goods_category", map); } } @Transactional(rollbackFor = Exception.class) public void goodsCategoryParentIdUpdate() { String goodsCategoryIds = redisClient.getCachedValue("goods_category"); Map maps = JSONObject.parseObject(goodsCategoryIds, HashMap.class); for (Map.Entry entry : maps.entrySet()) { String sql = "update shopping_goods_category set parent_id=" + entry.getValue().toString() + " where parent_id="+ entry.getKey() +" and company_id=35"; jdbcTemplate.update(sql); } } @DS("slave") public List goodsTypeOld() { List> maps = jdbcTemplate.queryForList("select * from sys_goods_type"); return mapsToListBean(maps, SysGoodsType.class); } @Transactional(rollbackFor = Exception.class) public void goodsTypeNew(List goodsTypes) { if (CollUtil.isNotEmpty(goodsTypes)) { Map map = new HashMap<>(); for (SysGoodsType goodsType : goodsTypes) { goodsType.setCompanyId(companyId); Long oldID = goodsType.getId(); goodsType.setId(null); sysGoodsTypeDao.insert(goodsType); map.put(oldID, goodsType.getId()); } redisClient.saveMapValue("goods_type", map); } } @Transactional(rollbackFor = Exception.class) public void updateGoodsTypeParentId() { String goodsTypes = redisClient.getCachedValue("goods_type"); Map maps = JSONObject.parseObject(goodsTypes, HashMap.class); for (Map.Entry entry : maps.entrySet()) { String sql = "update sys_goods_type set PARENT_ID="+ entry.getValue() +" where company_id=35 and PARENT_ID="+entry.getKey(); jdbcTemplate.update(sql); } } /** * 家具产品 * @param goodType * @return */ @DS("slave") public List shoppingGoodsOld(String goodType) { List> maps = jdbcTemplate.queryForList("select * from shopping_goods where good_type='"+goodType+"'"); List shoppingGoods = mapsToListBean(maps, ShoppingGoods.class); Map goodsTypeIds = getRedisIds("goods_type"); Map supplierInfoIds = getRedisIds("supplier_info"); for (ShoppingGoods shoppingGood : shoppingGoods) { List> assembleList = jdbcTemplate.queryForList("select * from shopping_goods_assemble where shopping_goods_id=" + shoppingGood.getId()); if (CollUtil.isNotEmpty(assembleList)) { String goodsName = shoppingGood.getName(); ; for (Map assemble : assembleList) { shoppingGood.setPrice((Double) assemble.get("price")); Long goodsId = (Long) assemble.get("assemble_sku_id"); if (goodsId == null) { continue; } Map sku = jdbcTemplate.queryForMap("select * from sku where id=" + goodsId); Map sysGoods = jdbcTemplate.queryForMap("select * from sys_goods where id=" + sku.get("goods_id")); shoppingGood.setGoodsNo((String) sysGoods.get("goods_no")); shoppingGood.setCode((String) sysGoods.get("goods_no")); shoppingGood.setName(goodsName+ "->" + sysGoods.get("name")); shoppingGood.setUnit((String) sysGoods.get("unit")); shoppingGood.setMeasure((String) sysGoods.get("measure")); shoppingGood.setAlarmNum((Integer) sku.get("alarm_num")); shoppingGood.setHeadquarters(1); shoppingGood.setIsDel(1); shoppingGood.setZjm(StringUtils.toHanyuPinyin(shoppingGood.getName()) + "," + StringUtils.toHeadWordHanyuPinyin(shoppingGood.getName())); shoppingGood.setWeiDescription("数据迁移"); Integer goodsSortId = goodsTypeIds.get(sysGoods.get("goods_sort_id").toString()); shoppingGood.setGoodsSortId(Long.parseLong(goodsSortId.toString())); Integer supplierId = supplierInfoIds.get(sysGoods.get("supplier_id").toString()); if (supplierId != null) { shoppingGood.setSupplierId(Long.parseLong(supplierId.toString())); } // 因为旧系统 sys_order_item 表中,关联商品与sku的id相关 shoppingGood.setId(goodsId); } } else { System.out.println("这是ID啊:"+ shoppingGood.getId()); } } return shoppingGoods; } @DS("slave") public List shoppingGoodsProjectOld() { List> maps = jdbcTemplate.queryForList("select * from shopping_goods where good_type='项目'"); List shoppingGoods = mapsToListBean(maps, ShoppingGoods.class); for (ShoppingGoods shoppingGood : shoppingGoods) { Map goodsAssemble = jdbcTemplate.queryForMap("select * from shopping_goods_assemble where shopping_goods_id=" + shoppingGood.getId()); Map projInfo = jdbcTemplate.queryForMap("select * from sys_proj_info where id=" + goodsAssemble.get("assemble_proj_id")); shoppingGood.setTimeLength((Integer) projInfo.get("time_length")); shoppingGood.setCode((String) projInfo.get("proj_no")); shoppingGood.setCompanyId(companyId); shoppingGood.setHeadquarters(1); shoppingGood.setIsDel(1); shoppingGood.setZjm(StringUtils.toHanyuPinyin(shoppingGood.getName()) + "," + StringUtils.toHeadWordHanyuPinyin(shoppingGood.getName())); shoppingGood.setWeiDescription("数据迁移"); shoppingGood.setId((Long) goodsAssemble.get("assemble_proj_id")); } return shoppingGoods; } @DS("slave") public List shoppingGoodsTcList() { List> maps = jdbcTemplate.queryForList("select * from shopping_goods where good_type='套餐'"); List shoppingGoods = mapsToListBean(maps, ShoppingGoods.class); Map goodsSku = getRedisIds("shopping_goods_sku"); Map goodProj = getRedisIds("shopping_goods_proj"); Map goodsTypeIds = getRedisIds("goods_type"); Map supplierInfoIds = getRedisIds("supplier_info"); List projExist = new ArrayList<>(); List skuExist = new ArrayList<>(); for (ShoppingGoods shoppingGood : shoppingGoods) { List> assembles = jdbcTemplate.queryForList("select * from shopping_goods_assemble where shopping_goods_id=" + shoppingGood.getId()); shoppingGood.setCompanyId(companyId); shoppingGood.setHeadquarters(1); shoppingGood.setIsDel(1); shoppingGood.setZjm(StringUtils.toHanyuPinyin(shoppingGood.getName()) + "," + StringUtils.toHeadWordHanyuPinyin(shoppingGood.getName())); shoppingGood.setWeiDescription("数据迁移-tc"); List assembleList = mapsToListBean(assembles, ShoppingGoodsAssemble.class); for (ShoppingGoodsAssemble assembleGood : assembleList) { if(assembleGood.getAssembleSkuId() != null) { Integer skuId = goodsSku.get(assembleGood.getAssembleSkuId().toString()); // assembleGood.setAssembleSkuId(null); if (skuId == null && !skuExist.contains(assembleGood.getAssembleSkuId())) { Map goodsMap = jdbcTemplate.queryForMap("select * from shopping_goods where id=" + assembleGood.getShoppingGoodsId()); ShoppingGoods goods = mapToBane(goodsMap, ShoppingGoods.class); Map sku = jdbcTemplate.queryForMap("select * from sku where id=" + assembleGood.getAssembleSkuId()); Map sysGoods = jdbcTemplate.queryForMap("select * from sys_goods where id=" + sku.get("goods_id")); goods.setGoodsNo((String) sysGoods.get("goods_no")); goods.setCode((String) sysGoods.get("goods_no")); goods.setName(goods.getName()+ "->" + sysGoods.get("name")); goods.setUnit((String) sysGoods.get("unit")); goods.setMeasure((String) sysGoods.get("measure")); goods.setAlarmNum((Integer) sku.get("alarm_num")); goods.setHeadquarters(1); goods.setIsDel(1); goods.setGoodType("家居产品"); goods.setZjm(StringUtils.toHanyuPinyin(shoppingGood.getName()) + "," + StringUtils.toHeadWordHanyuPinyin(shoppingGood.getName())); goods.setWeiDescription("数据迁移-tc"); Integer goodsSortId = goodsTypeIds.get(sysGoods.get("goods_sort_id").toString()); goods.setGoodsSortId(Long.parseLong(goodsSortId.toString())); Integer supplierId = supplierInfoIds.get(sysGoods.get("supplier_id").toString()); if (supplierId != null) { shoppingGood.setSupplierId(Long.parseLong(supplierId.toString())); } assembleGood.setShoppingGoods(goods); skuExist.add(assembleGood.getAssembleSkuId()); } else { if (skuId != null) { assembleGood.setAssembleGoodId(skuId.longValue()); } } } if (assembleGood.getAssembleProjId() != null) { Integer projId = goodProj.get(assembleGood.getAssembleProjId().toString()); // 若为空,则需创建一个shopping_goods if (projId == null && !projExist.contains(assembleGood.getAssembleProjId())) { Map goodsMap = jdbcTemplate.queryForMap("select * from shopping_goods where id=" + assembleGood.getShoppingGoodsId()); ShoppingGoods goods = mapToBane(goodsMap, ShoppingGoods.class); Map projMap = jdbcTemplate.queryForMap("select * from sys_proj_info where id=" + assembleGood.getAssembleProjId()); goods.setTimeLength((Integer) projMap.get("time_length")); goods.setCode((String) projMap.get("proj_no")); goods.setCompanyId(companyId); goods.setHeadquarters(1); goods.setIsDel(1); goods.setGoodType("项目"); goods.setZjm(StringUtils.toHanyuPinyin(goods.getName()) + "," + StringUtils.toHeadWordHanyuPinyin(goods.getName())); goods.setWeiDescription("数据迁移-tc"); assembleGood.setShoppingGoods(goods); projExist.add(assembleGood.getAssembleProjId()); } else { if (projId != null) { assembleGood.setAssembleGoodId(projId.longValue()); } } // assembleGood.setAssembleProjId(null); } } if (CollUtil.isNotEmpty(assembleList)) { shoppingGood.setAssembleGoods(assembleList); } } return shoppingGoods; } @DS("slave") public List shoppingGoodsCzkOld() { List> maps = jdbcTemplate.queryForList("select * from shopping_goods where good_type='充值卡'"); List shoppingGoods = mapsToListBean(maps, ShoppingGoods.class); for (ShoppingGoods shoppingGood : shoppingGoods) { shoppingGood.setCompanyId(companyId); shoppingGood.setHeadquarters(1); shoppingGood.setIsDel(1); shoppingGood.setZjm(StringUtils.toHanyuPinyin(shoppingGood.getName()) + "," + StringUtils.toHeadWordHanyuPinyin(shoppingGood.getName())); shoppingGood.setWeiDescription("数据迁移"); } return shoppingGoods; } @DS("slave") public List shoppingGoodsZhkOld() { List> maps = jdbcTemplate.queryForList("select * from shopping_goods where good_type='综合卡'"); List shoppingGoods = mapsToListBean(maps, ShoppingGoods.class); Map goodsSku = getRedisIds("shopping_goods_sku"); Map goodProj = getRedisIds("shopping_goods_proj"); Map goodTc = getRedisIds("shopping_goods_tc"); Map goodCzk = getRedisIds("shopping_goods_czk"); for (ShoppingGoods shoppingGood : shoppingGoods) { List> assembles = jdbcTemplate.queryForList("select * from shopping_goods_assemble where shopping_goods_id=" + shoppingGood.getId()); List assembleList = mapsToListBean(assembles, ShoppingGoodsAssemble.class); for (ShoppingGoodsAssemble shoppingGoodsAssemble : assembleList) { Long goodsId = shoppingGoodsAssemble.getAssembleGoodId(); System.out.println("----->" + goodsId); if (goodsId == 8521 || goodsId == 8522) { continue; } Map goodsMap = jdbcTemplate.queryForMap("select * from shopping_goods where id=" + goodsId); ShoppingGoods goods = mapToBane(goodsMap, ShoppingGoods.class); if ("套餐".equals(goods.getGoodType())) { Integer tcId = goodTc.get(goodsId.toString()); shoppingGoodsAssemble.setAssembleGoodId(tcId.longValue()); } else if("充值卡".equals(goods.getGoodType())) { Integer czkId = goodCzk.get(goodsId.toString()); shoppingGoodsAssemble.setShoppingGoodsId(czkId.longValue()); } else if ("家居产品".equals(goods.getGoodType())) { Map skuMap = jdbcTemplate.queryForMap("select * from shopping_goods_assemble where shopping_goods_id=" + goods.getId()); ShoppingGoodsAssemble sku = mapToBane(skuMap, ShoppingGoodsAssemble.class); Integer skuId = goodsSku.get(sku.getAssembleSkuId().toString()); shoppingGoodsAssemble.setAssembleGoodId(skuId.longValue()); } else if ("项目".equals(goods.getGoodType())) { Map projMap = jdbcTemplate.queryForMap("select * from shopping_goods_assemble where shopping_goods_id=" + goods.getId()); ShoppingGoodsAssemble proj = mapToBane(projMap, ShoppingGoodsAssemble.class); Integer projId = goodProj.get(proj.getAssembleProjId().toString()); shoppingGoodsAssemble.setAssembleGoodId(projId.longValue()); } } shoppingGood.setAssembleGoods(assembleList); } return shoppingGoods; } @Transactional(rollbackFor = Exception.class) public void shoppingGoodsNew(List list, String goodsType) { if (CollUtil.isNotEmpty(list)) { Map map = new HashMap<>(); Map goodsCategory = getRedisIds("goods_category"); Map goodsSku = getRedisIds("shopping_goods_sku"); Map goodProj = getRedisIds("shopping_goods_proj"); Map sku = new HashMap<>(); Map proj = new HashMap<>(); for (ShoppingGoods shoppingGoods : list) { shoppingGoods.setCompanyId(companyId); if (shoppingGoods.getCateId() != null) { Integer cateId = goodsCategory.get(shoppingGoods.getCateId().toString()); if (cateId != null) { shoppingGoods.setCateId(Long.parseLong(cateId.toString())); } } Long oldId = shoppingGoods.getId(); shoppingGoods.setId(null); shoppingGoodsDao.insert(shoppingGoods); map.put(oldId, shoppingGoods.getId()); if ("套餐".equals(goodsType)) { List assembleGoods = shoppingGoods.getAssembleGoods(); if (CollUtil.isNotEmpty(assembleGoods)) { for (ShoppingGoodsAssemble assembleGood : assembleGoods) { assembleGood.setShoppingGoodsId(shoppingGoods.getId()); Long oldIdTc = assembleGood.getAssembleSkuId() == null ? assembleGood.getAssembleProjId() : assembleGood.getAssembleSkuId(); if (assembleGood.getShoppingGoods() != null) { assembleGood.getShoppingGoods().setId(null); shoppingGoodsDao.insert(assembleGood.getShoppingGoods()); if (assembleGood.getAssembleSkuId() == null) { proj.put(oldIdTc, assembleGood.getShoppingGoods().getId()); goodProj.put(oldIdTc.toString(), assembleGood.getShoppingGoods().getId().intValue()); } else { sku.put(oldIdTc, assembleGood.getShoppingGoods().getId()); goodsSku.put(oldIdTc.toString(), assembleGood.getShoppingGoods().getId().intValue()); } assembleGood.setAssembleGoodId(assembleGood.getShoppingGoods().getId()); } else { if (assembleGood.getAssembleSkuId() == null) { Integer projTc = goodProj.get(oldIdTc.toString()); Long goodsId = null; if (projTc == null) { goodsId = proj.get(oldIdTc); } else { goodsId = projTc.longValue(); } assembleGood.setAssembleGoodId(goodsId); } else { Integer skuTc = goodsSku.get(oldIdTc.toString()); Long goodsId = null; if (skuTc == null) { goodsId = sku.get(oldIdTc); } else { goodsId = skuTc.longValue(); } assembleGood.setAssembleGoodId(goodsId); } } assembleGood.setId(null); } shoppingGoodsAssembleDao.batchInsert(assembleGoods); } } } if ("家居产品".equals(goodsType)) { redisClient.saveMapValue("shopping_goods_sku", map); } else if ("项目".equals(goodsType)) { redisClient.saveMapValue("shopping_goods_proj", map); } else if ("套餐".equals(goodsType)) { redisClient.saveMapValue("shopping_goods_tc", map); redisClient.saveMapValue("shopping_goods_sku", goodsSku); redisClient.saveMapValue("shopping_goods_proj", goodProj); } else if ("充值卡".equals(goodsType)) { redisClient.saveMapValue("shopping_goods_czk", map); } } } @Transactional(rollbackFor = Exception.class) public void shoppingGoodsZhkNew(List list) { if (CollUtil.isNotEmpty(list)) { Map map = new HashMap<>(); Map goodsCategory = getRedisIds("goods_category"); for (ShoppingGoods shoppingGoods : list) { shoppingGoods.setCompanyId(companyId); if (shoppingGoods.getCateId() != null) { Integer cateId = goodsCategory.get(shoppingGoods.getCateId().toString()); if (cateId != null) { shoppingGoods.setCateId(Long.parseLong(cateId.toString())); } } Long oldId = shoppingGoods.getId(); shoppingGoods.setId(null); shoppingGoodsDao.insert(shoppingGoods); map.put(oldId, shoppingGoods.getId()); for (ShoppingGoodsAssemble assembleGood : shoppingGoods.getAssembleGoods()) { assembleGood.setShoppingGoodsId(shoppingGoods.getId()); assembleGood.setId(null); } shoppingGoodsAssembleDao.batchInsert(shoppingGoods.getAssembleGoods()); } redisClient.saveMapValue("shopping_goods_zhk", map); } } public Map getRedisIds(String key) { String idsStr = redisClient.getCachedValue(key); return JSONObject.parseObject(idsStr, HashMap.class); } @DS("slave") public List orderOld() { List> maps = jdbcTemplate.queryForList("select * from sys_order"); List orders = mapsToListBean(maps, SysOrder.class); Map goodsSku = getRedisIds("shopping_goods_sku"); Map goodProj = getRedisIds("shopping_goods_proj"); Map goodTc = getRedisIds("shopping_goods_tc"); Map goodCZK = getRedisIds("shopping_goods_czk"); Map goodZHK = getRedisIds("shopping_goods_zhk"); Map shopIds = getRedisIds("shopId"); // Map sysUsers = getRedisIds("sys_users"); Map vipInfos = getRedisIds("vip_info"); Map shopStaff = getRedisIds("shop_staff"); for (SysOrder order : orders) { List> itemsMap = jdbcTemplate.queryForList("select * from sys_order_item where ORDER_ID=" + order.getId()); Integer shopId = shopIds.get(order.getShopId().toString()); order.setShopId(shopId.longValue()); if ("已付款".equals(order.getStatu()) || "欠款".equals(order.getStatu())) { order.setPayTime(order.getOrderTime()); } Integer statffId = shopStaff.get(order.getStaffId().toString()); if (statffId != null) { order.setStaffId(statffId.longValue()); } else { order.setStaffId(-order.getStaffId()); } Integer vipId = vipInfos.get(order.getVipId().toString()); if (vipId != null) { order.setVipId(vipId.longValue()); } else { order.setVipId(-order.getVipId()); } order.setCompanyId(companyId); List items = mapsToListBean(itemsMap, SysOrderItem.class); Double cardPay = 0D; Double cashPay = 0D; Double arrears = 0D; Map shoppingGoodsIds = new HashMap<>(); if (CollUtil.isNotEmpty(items)) { Long goodsId = items.get(0).getGoodsId(); Map goods = jdbcTemplate.queryForMap("select * from shopping_goods where id=" + goodsId); order.setShopShortName((String) goods.get("name")); for (SysOrderItem item : items) { Double itemCard = item.getCardPay() == null ? 0D : item.getCardPay(); Double itemCash = item.getCashPay() == null ? 0D : item.getCashPay(); Double itemArrears = item.getArrears() == null ? 0D : item.getArrears(); cardPay += itemCard; cashPay += itemCash; arrears += itemArrears; if (itemCard != 0) { item.setPayMethod("划扣"); } else { item.setPayMethod("现金"); } Long oldID = item.getGoodsId(); switch (item.getType()) { case "家居产品" : Map skuMap = jdbcTemplate.queryForMap("select * from shopping_goods_assemble where id=" + item.getAssembleId()); Long skuId = (Long) skuMap.get("assemble_sku_id"); Integer skuGoodsId = goodsSku.get(skuId.toString()); if (skuGoodsId != null) { item.setGoodsId(skuGoodsId.longValue()); } else { item.setGoodsId(-item.getAssembleId()); } break; case "项目" : Map projMap = jdbcTemplate.queryForMap("select * from shopping_goods_assemble where id=" + item.getAssembleId()); Long projId = (Long) projMap.get("assemble_proj_id"); Integer projGoodsId = goodProj.get(projId.toString()); if (projGoodsId != null) { item.setGoodsId(projGoodsId.longValue()); } else { item.setGoodsId(-item.getAssembleId()); } break; case "套餐" : Integer tcId = goodTc.get(item.getGoodsId().toString()); if (tcId != null) { item.setGoodsId(tcId.longValue()); } else { item.setGoodsId(-item.getGoodsId()); } break; case "充值卡" : Integer czkId = goodCZK.get(item.getGoodsId().toString()); if (czkId != null) { item.setGoodsId(czkId.longValue()); } else { item.setGoodsId(-item.getGoodsId()); } break; case "综合卡" : Integer zhkId = goodZHK.get(item.getGoodsId().toString()); if (zhkId != null) { item.setGoodsId(zhkId.longValue()); } else { item.setGoodsId(-item.getGoodsId()); } break; default: } shoppingGoodsIds.put(oldID, item.getGoodsId()); } order.setItems(items); } List flows = new ArrayList<>(); if (cardPay != 0D) { flows.add(setOrderFLow(order, "储值卡", cardPay, 1)); } if (cashPay != 0D) { flows.add(setOrderFLow(order, "现金支付", cashPay, 1)); } if (arrears != 0D) { flows.add(setOrderFLow(order, "欠款", arrears, 1)); } order.setFlows(flows); List> achievesMap = jdbcTemplate.queryForList("select sale_id, beault_id, shop_id, datatime, order_id, order_item_id, shopping_goods_id, vip_id, order_type, sum(t1) as t1 from achieve_new where order_type='订单' and order_id="+ order.getId() + " group by sale_id, beault_id, shop_id, datatime, order_id, order_item_id, shopping_goods_id, vip_id, order_type"); if (CollUtil.isNotEmpty(achievesMap)) { List achieves = mapsToListBean(achievesMap, AchieveNew.class); for (AchieveNew achieve : achieves) { Integer achiShopId = shopIds.get(achieve.getShopId().toString()); achieve.setShopId(achiShopId.longValue()); if (achieve.getBeaultId() == null) { achieve.setBeaultId(achieve.getSaleId()); achieve.setAchieveType("顾问业绩"); } else { achieve.setAchieveType("美疗师业绩"); } Integer beaultId = shopStaff.get(achieve.getBeaultId().toString()); if (beaultId != null) { achieve.setBeaultId(beaultId.longValue()); } else { achieve.setBeaultId(-achieve.getBeaultId()); } Integer saleId = shopStaff.get(achieve.getSaleId().toString()); if (saleId != null) { achieve.setSaleId(saleId.longValue()); } else { achieve.setSaleId(-achieve.getSaleId()); } Integer achiVipId = vipInfos.get(achieve.getVipId().toString()); if (achiVipId != null) { achieve.setVipId(achiVipId.longValue()); } else { achieve.setVipId(-achieve.getVipId()); } achieve.setGoodsCash(Double.parseDouble(achieve.getT1())); achieve.setCompanyId(companyId); achieve.setShoppingGoodsId(shoppingGoodsIds.get(achieve.getShoppingGoodsId())); } order.setAchieveNews(achieves); } } return orders; } public SysOrderFlow setOrderFLow(SysOrder sysOrder, String type, Double amount, int index) { SysOrderFlow flow = new SysOrderFlow(); flow.setFlowContent(sysOrder.getShopShortName() + "等" + sysOrder.getItems().size() + "件产品"); flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY); flow.setAmount(new BigDecimal(amount)); flow.setFlowNo("F" + sysOrder.getOrderNo() + "-" + index); flow.setVipId(sysOrder.getVipId()); flow.setShopId(sysOrder.getShopId()); flow.setCompanyId(sysOrder.getCompanyId()); flow.setPayMethod(type); return flow; } @Autowired private SysOrderDao sysOrderDao; @Autowired private SysOrderItemDao sysOrderItemDao; @Autowired private SysOrderFlowDao sysOrderFlowDao; @Autowired private AchieveNewDao achieveNewDao; @Transactional(rollbackFor = Exception.class) public void orderNew(List list) { if (CollUtil.isNotEmpty(list)) { Map orderIds = new HashMap<>(); Map itemIds = new HashMap<>(); for (SysOrder sysOrder : list) { Long oldOrderId = sysOrder.getId(); sysOrder.setId(null); sysOrderDao.insert(sysOrder); orderIds.put(oldOrderId, sysOrder.getId()); if (CollUtil.isNotEmpty(sysOrder.getItems())) { for (SysOrderItem item : sysOrder.getItems()) { Long oldItemId = item.getId(); item.setOrderId(sysOrder.getId()); item.setId(null); sysOrderItemDao.insert(item); itemIds.put(oldItemId, item.getId()); } } if (CollUtil.isNotEmpty(sysOrder.getFlows())) { for (SysOrderFlow flow : sysOrder.getFlows()) { if ("储值卡".equals(flow.getPayMethod())) { MoneyCardUse moneyCardUse = new MoneyCardUse(); moneyCardUse.setIsVipCar("Y"); moneyCardUse.setVipId(flow.getVipId()); List moneyCardUses = moneyCardUseDao.selectVipCardUse(moneyCardUse); if (CollUtil.isNotEmpty(moneyCardUses)) { flow.setCardId(moneyCardUses.get(0).getId()); } } flow.setOrderId(sysOrder.getId()); flow.setCreateBy("数据迁移"); sysOrderFlowDao.insert(flow); } } if (CollUtil.isNotEmpty(sysOrder.getAchieveNews())) { for (AchieveNew achieveNew : sysOrder.getAchieveNews()) { achieveNew.setOrderId(sysOrder.getId()); Long item = itemIds.get(achieveNew.getOrderItemId()); achieveNew.setT9("数据迁移"); achieveNew.setOrderItemId(item); achieveNew.setId(null); } achieveNewDao.batchInsert(sysOrder.getAchieveNews()); } } redisClient.saveMapValue("order", orderIds); redisClient.saveMapValue("order_item", itemIds); } } @DS("slave") public List bedInfoOld() { List> maps = jdbcTemplate.queryForList("select * from sys_bed_info"); List beds = mapsToListBean(maps, SysBedInfo.class); Map shopIds = getRedisIds("shopId"); for (SysBedInfo bed : beds) { Integer shopId = shopIds.get(bed.getShopId().toString()); if (shopId != null) { bed.setShopId(shopId.longValue()); } else { bed.setShopId(-bed.getShopId()); } } return beds; } @Autowired private SysBedInfoDao sysBedInfoDao; @Transactional(rollbackFor = Exception.class) public void bedInfoNew(List list) { if (CollUtil.isNotEmpty(list)) { Map map = new HashMap<>(); for (SysBedInfo bed : list) { Long oldId = bed.getId(); bed.setId(null); sysBedInfoDao.insert(bed); map.put(oldId, bed.getId()); } redisClient.saveMapValue("bed_info", map); } } @DS("slave") public List projUseMoveOld() { List> maps = jdbcTemplate.queryForList("select\n" + "\t\ta.ID,\n" + "\t\ta.VIP_ID,\n" + "\t\ta.TAOCAN_ID,\n" + "\t\ta.FAIL_TIME,\n" + "\t\ta.SOURCE,\n" + "\t\ta.STATUS,\n" + "\t\ta.ORDER_ITEM_ID,\n" + "\t\ta.PLATFORM_FLAG,\n" + "\t\ta.type,\n" + "\t\ta.balance,\n" + "\t\ta.remark,\n" + " b.name projName,\n" + " sum(a.SURPLUS_COUNT) SURPLUS_COUNT\n" + "\t\tfrom sys_proj_use a\n" + "\t\tleft join shopping_goods b on a.TAOCAN_ID= b.ID\n" + "where TAOCAN_ID IS NOT NULL\n" + "GROUP BY PLATFORM_FLAG\n" + "order by a.status"); List projUses = mapsToListBean(maps, SysProjUse.class); Map goodProj = getRedisIds("shopping_goods_proj"); Map goodTc = getRedisIds("shopping_goods_tc"); Map vipInfos = getRedisIds("vip_info"); Map order_item = getRedisIds("order_item"); for (SysProjUse projUse : projUses) { projUse.setType("套餐"); if (projUse.getTaocanId() != null) { Integer tcId = goodTc.get(projUse.getTaocanId().toString()); if (tcId != null) { projUse.setProjId(tcId.longValue()); } else { projUse.setProjId(-projUse.getTaocanId()); } } Integer vipId = vipInfos.get(projUse.getVipId().toString()); if (vipId != null) { projUse.setVipId(vipId.longValue()); } else { projUse.setVipId(-projUse.getVipId()); } if (projUse.getOrderItemId() != null && projUse.getOrderItemId() != 1) { Integer itemID = order_item.get(projUse.getOrderItemId().toString()); if (itemID != null) { projUse.setOrderItemId(itemID.longValue()); } else { projUse.setOrderItemId(-projUse.getOrderItemId()); } } if ("无效".equals(projUse.getStatus())) { projUse.setIsOver("Y"); } List> projInfos = jdbcTemplate.queryForList("select a.*, b.PROJ_NAME from sys_proj_use a\n" + "left join sys_proj_info b on a.PROJ_ID=b.ID\n" + "where PLATFORM_FLAG='" + projUse.getPlatformFlag()+"'"); List projInfoUses = mapsToListBean(projInfos, SysProjUse.class); for (SysProjUse projInfoUse : projInfoUses) { if (projInfoUse.getProjId() != null) { Integer projId = goodProj.get(projInfoUse.getProjId().toString()); if (projId != null) { projInfoUse.setProjId(projId.longValue()); } else { projInfoUse.setProjId(-projInfoUse.getProjId()); } } Integer vipId2 = vipInfos.get(projInfoUse.getVipId().toString()); if (vipId2 != null) { projInfoUse.setVipId(vipId2.longValue()); } else { projInfoUse.setVipId(-projInfoUse.getVipId()); } projInfoUse.setType("项目"); } projUse.setTaocanProjUse(projInfoUses); } List> projUsesInfoMap = jdbcTemplate.queryForList("select a.*, b.PROJ_NAME from sys_proj_use a left join sys_proj_info b on a.PROJ_ID=b.id where TAOCAN_ID is null"); List sysProjUses = mapsToListBean(projUsesInfoMap, SysProjUse.class); for (SysProjUse sysProjUse : sysProjUses) { sysProjUse.setType("项目"); sysProjUse.setDeductionNum(1); if (sysProjUse.getProjId() != null) { Integer projId = goodProj.get(sysProjUse.getProjId().toString()); if (projId != null) { sysProjUse.setProjId(projId.longValue()); } else { sysProjUse.setProjId(-sysProjUse.getProjId()); } } Integer vipId2 = vipInfos.get(sysProjUse.getVipId().toString()); if (vipId2 != null) { sysProjUse.setVipId(vipId2.longValue()); } else { sysProjUse.setVipId(-sysProjUse.getVipId()); } if (sysProjUse.getOrderItemId() != null && sysProjUse.getOrderItemId() != 1) { Integer itemID = order_item.get(sysProjUse.getOrderItemId().toString()); if (itemID != null) { sysProjUse.setOrderItemId(itemID.longValue()); } else { sysProjUse.setOrderItemId(-sysProjUse.getOrderItemId()); } } projUses.add(sysProjUse); } return projUses; } @Autowired private SysProjUseDao sysProjUseDao; @Transactional(rollbackFor = Exception.class) public void projUseNew(List list) { if (CollUtil.isNotEmpty(list)) { Map map = new HashMap<>(); for (SysProjUse sysProjUse : list) { Long oldId = sysProjUse.getId(); sysProjUse.setId(null); sysProjUse.setCreateBy("数据迁移"); sysProjUse.setTaocanId(null); List taocanProjUses = sysProjUse.getTaocanProjUse(); if (CollUtil.isNotEmpty(taocanProjUses)) { sysProjUse.setIsCourse("N"); sysProjUseDao.insert(sysProjUse); for (SysProjUse taocanProjUse : taocanProjUses) { taocanProjUse.setTaocanId(sysProjUse.getId()); Long projOldId = taocanProjUse.getId(); taocanProjUse.setId(null); taocanProjUse.setCreateBy("数据迁移"); taocanProjUse.setDeductionNum(1); sysProjUseDao.insert(taocanProjUse); map.put(projOldId, taocanProjUse.getId()); } } else { sysProjUseDao.insert(sysProjUse); } map.put(oldId, sysProjUse.getId()); } redisClient.saveMapValue("proj_use", map); } } @DS("slave") public List serviceOrderOld() { List> maps = jdbcTemplate.queryForList("select * from sys_proj_services"); List list = mapsToListBean(maps, SysProjServices.class); Map vipInfos = getRedisIds("vip_info"); Map bedInfos = getRedisIds("bed_info"); Map sysUsers = getRedisIds("sys_users"); Map projUses = getRedisIds("proj_use"); Map goodProj = getRedisIds("shopping_goods_proj"); Map shopIds = getRedisIds("shopId"); for (SysProjServices sysProjServices : list) { List> beauticiansMap = jdbcTemplate.queryForList("select * from sys_beautician_state where SERVICES_ID=" + sysProjServices.getId()); // Map bedStatesMap = jdbcTemplate.queryForMap("select * from sys_bed_state where SERVICE_ID=" + sysProjServices.getId()); // List> achieveMaps = jdbcTemplate.queryForList("select * from achieve_new where service_order_id=" + sysProjServices.getId()); SysBedState query = new SysBedState(); query.setServiceId(sysProjServices.getId()); List queryBeds = sysBedStateDao.selectByModel(query); SysBedState bedStates = null; if (CollUtil.isNotEmpty(queryBeds)) { bedStates = queryBeds.get(0); } List beauticians = mapsToListBean(beauticiansMap, SysBeauticianState.class); List achieveNews = achieveNewDao.selectAchieveByServiceOrderId(sysProjServices.getId()); // SysBedState bedStates = mapToBane(bedStatesMap, SysBedState.class); Integer shopId = shopIds.get(sysProjServices.getShopId().toString()); if (shopId != null) { sysProjServices.setShopId(shopId.longValue()); } else { sysProjServices.setShopId(-sysProjServices.getShopId()); } if (sysProjServices.getBedId() != null) { Integer bedId = bedInfos.get(sysProjServices.getBedId().toString()); if (bedId != null) { sysProjServices.setBedId(bedId.longValue()); bedStates.setBedId(bedId.longValue()); } else { sysProjServices.setBedId(-sysProjServices.getBedId()); bedStates.setBedId(-sysProjServices.getBedId()); } sysProjServices.setBedState(bedStates); } if (sysProjServices.getBeauticianId() != null) { Integer beautyId = sysUsers.get(sysProjServices.getBeauticianId().toString()); if (beautyId != null) { sysProjServices.setBeauticianId(beautyId.longValue()); } else { sysProjServices.setBeauticianId(-sysProjServices.getBeauticianId()); } } if (sysProjServices.getDevisionId() != null) { Integer devisionId = sysUsers.get(sysProjServices.getDevisionId().toString()); if (devisionId != null) { sysProjServices.setDevisionId(devisionId.longValue()); } else { sysProjServices.setDevisionId(-sysProjServices.getDevisionId()); } } if (sysProjServices.getCreateStaffId() != null) { Integer staffId = sysUsers.get(sysProjServices.getCreateStaffId().toString()); if (staffId != null) { sysProjServices.setCreateStaffId(staffId.longValue()); } else { sysProjServices.setCreateStaffId(-sysProjServices.getCreateStaffId()); } } Integer vipId = null; if (sysProjServices.getVipId() != null) { vipId = vipInfos.get(sysProjServices.getVipId().toString()); if (vipId != null) { sysProjServices.setVipId(vipId.longValue()); } else { sysProjServices.setVipId(-sysProjServices.getVipId()); } } if (CollUtil.isNotEmpty(beauticians)) { List newBeautician = new ArrayList<>(); for (SysBeauticianState beautician : beauticians) { List> beaProjMaps = jdbcTemplate.queryForList("select distinct proj_id from service_bea_proj where ser_proj_id is not null and bea_state_id=" + beautician.getId()); for (Map beaProjMap : beaProjMaps) { SysBeauticianState beauticianState = new SysBeauticianState(); BeanUtils.copyProperties(beautician, beauticianState); String puseIdStr = beaProjMap.get("proj_id").toString(); Integer puseId = projUses.get(puseIdStr); beauticianState.setPuseId(puseId != null ? puseId.longValue() : -Long.parseLong(puseIdStr)); SysProjUse sysProjUse = sysProjUseDao.selectById(Long.parseLong(puseIdStr)); // Map projUseMap = jdbcTemplate.queryForMap("select * from sys_proj_use where id=" + puseIdStr); if (sysProjUse != null) { Integer goodsProjId = goodProj.get(sysProjUse.getProjId().toString()); beauticianState.setProjId(goodsProjId != null ? goodsProjId.longValue() : -Long.parseLong(sysProjUse.getProjId().toString())); } beauticianState.setCount(1); beauticianState.setExtract("数据迁移"); newBeautician.add(beauticianState); } } sysProjServices.setServiceItems(newBeautician); } if (CollUtil.isNotEmpty(achieveNews)) { for (AchieveNew achieveNew : achieveNews) { achieveNew.setShopId(shopId != null ? shopId.longValue() : -achieveNew.getShopId()); achieveNew.setVipId(vipId != null ? vipId.longValue() : -achieveNew.getVipId()); Integer saleIdInt = sysUsers.get(achieveNew.getSaleId() == null ? "" : achieveNew.getSaleId().toString()); achieveNew.setSaleId(saleIdInt == null ? -achieveNew.getSaleId() : saleIdInt); Integer beaultyIdInt = sysUsers.get(achieveNew.getBeaultId() == null ? "" : achieveNew.getBeaultId().toString()); achieveNew.setBeaultId(beaultyIdInt == null ? -achieveNew.getBeaultId() : beaultyIdInt); if (achieveNew.getShoppingGoodsId() != null) { Integer goodsId = goodProj.get(achieveNew.getShoppingGoodsId().toString()); achieveNew.setShoppingGoodsId(goodsId == null ? -achieveNew.getShoppingGoodsId() : goodsId.longValue()); } achieveNew.setT9("数据迁移"); } } sysProjServices.setAchieveNews(achieveNews); } return list; } @Autowired private SysProjServicesDao sysProjServicesDao; @Autowired private SysBeauticianStateDao sysBeauticianStateDao; @Autowired private SysBedStateDao sysBedStateDao; @Transactional(rollbackFor = Exception.class) public void serviceOrderNew(List list) { if (CollUtil.isNotEmpty(list)) { Map maps = new HashMap<>(); Map beautyMaps = new HashMap<>(); for (SysProjServices sysProjServices : list) { Long oldId = sysProjServices.getId(); sysProjServices.setId(null); sysProjServices.setComment("数据迁移"); sysProjServices.setCompanyId(companyId); sysProjServicesDao.insert(sysProjServices); Long newId = sysProjServices.getId(); List serviceItems = sysProjServices.getServiceItems(); if (CollUtil.isNotEmpty(serviceItems)) { for (SysBeauticianState serviceItem : serviceItems) { serviceItem.setServicesId(newId); Long beautyOldId = serviceItem.getId(); serviceItem.setId(null); serviceItem.setExtract("数据迁移"); sysBeauticianStateDao.insert(serviceItem); beautyMaps.put(beautyOldId, serviceItem.getId()); } } SysBedState bedState = sysProjServices.getBedState(); if (bedState != null) { bedState.setId(null); bedState.setServiceId(newId); sysBedStateDao.insert(bedState); } List achieveNews = sysProjServices.getAchieveNews(); if (CollUtil.isNotEmpty(achieveNews)) { for (AchieveNew achieveNew : achieveNews) { achieveNew.setId(null); achieveNew.setOrderItemId(beautyMaps.get(achieveNew.getOrderItemId())); achieveNew.setServiceOrderId(newId); achieveNew.setCompanyId(companyId); } achieveNewDao.batchInsert(achieveNews); } maps.put(oldId, newId); } redisClient.saveMapValue("service_order", maps); } } @DS("slave") public List shopStaffInfoOld() throws UnsupportedEncodingException, NoSuchAlgorithmException { List> maps = jdbcTemplate.queryForList("select * from sys_shopstaff_info"); Map sysUsersMap = getRedisIds("sys_users"); Map shopMap = getRedisIds("shopId"); Map staffMap = new HashMap<>(); List list = new ArrayList<>(); // EmptyResultDataAccessException for (Map map : maps) { try { Map staffUser = jdbcTemplate.queryForMap("select * from users where staff_id=" + map.get("id")); Integer id = sysUsersMap.get(staffUser.get("id").toString()); staffMap.put(Long.parseLong(map.get("id").toString()), id.longValue()); } catch (EmptyResultDataAccessException e) { SysUsers sysUsers = new SysUsers(); sysUsers.setSuAccount((String) map.get("staff_no")); sysUsers.setSuId((Long) map.get("id")); sysUsers.setSuName((String) map.get("staff_name")); sysUsers.setSuSex((String) map.get("sex")); sysUsers.setSuUserType("employee"); sysUsers.setSuAccountStatus(AppConstance.ACCOUNT_STATUS_INACTIVATED); sysUsers.setSuValid("N"); sysUsers.setCompanyId(companyId); Long aaa = (Long) map.get("shop_id"); if (aaa != null) { Integer shopId = shopMap.get(aaa.toString()); if (shopId != null) { sysUsers.setShopId(Long.parseLong(shopId.toString())); } } sysUsers.setSuRegisterTime(new Date()); sysUsers.setCreateBy(AppConstance.SYSTEM_USER); sysUsers.setUpdateBy(AppConstance.SYSTEM_USER); sysUsers.setSuPassword(PasswordUtil.getEncrypUserPwd(sysUsers)); list.add(sysUsers); } } redisClient.saveMapValue("shop_staff", staffMap); return list; } @Transactional(rollbackFor = Exception.class) public void shopStaffInfoNew(List list) { Map shopStaff = getRedisIds("shop_staff"); for (SysUsers sysUsers : list) { Long oldId = sysUsers.getSuId(); sysUsers.setSuId(null); sysUsersDao.insert(sysUsers); shopStaff.put(oldId.toString(), sysUsers.getSuId().intValue()); } redisClient.saveMapValue("shop_staff", shopStaff); } }