diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysImportFanRecordController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysImportFanRecordController.java index c650fc92d..e9b01e4cf 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysImportFanRecordController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysImportFanRecordController.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import com.stdiet.common.utils.DateUtils; import com.stdiet.common.utils.StringUtils; import com.stdiet.custom.domain.SysImportFanWxAccount; import com.stdiet.custom.domain.SysWxSaleAccount; @@ -106,6 +107,7 @@ public class SysImportFanRecordController extends BaseController String[] importFanLiveArray = sysImportFanRecord.getImportFanLives().split(","); String[] wxAccountIdArray = sysImportFanRecord.getWxAccountIds().split(","); String[] fanNumArray = sysImportFanRecord.getFanNums().split(","); + String[] importTimeArray = sysImportFanRecord.getImportTimes().split(","); int index = -1; for (String importFanChannel : importFanChannelArray) { index++; @@ -116,6 +118,7 @@ public class SysImportFanRecordController extends BaseController sysImportFanRecord.setImportFanLive(StringUtils.isEmpty(importFanLiveArray[index]) ? 0L : Long.parseLong(importFanLiveArray[index])); sysImportFanRecord.setWxAccountId(Long.parseLong(wxAccountIdArray[index])); sysImportFanRecord.setFanNum(Long.parseLong(fanNumArray[index])); + sysImportFanRecord.setImportTime(DateUtils.parseDate(importTimeArray[index])); row = sysImportFanRecordService.insertSysImportFanRecord(sysImportFanRecord); } }else{ diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysImportFanRecord.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysImportFanRecord.java index bd3480d6c..17b120ecd 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysImportFanRecord.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysImportFanRecord.java @@ -39,6 +39,10 @@ public class SysImportFanRecord extends BaseEntity /** 删除标识,0未删除 1已删除 */ private Long delFlag; + //导粉时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private Date importTime; + //微信ID private Long wxAccountId; @@ -62,6 +66,8 @@ public class SysImportFanRecord extends BaseEntity private String fanNums; + private String importTimes; + //总进粉数量 private Integer totalFanNum; diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysImportFanWxAccount.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysImportFanWxAccount.java index 7ccf0a9ba..116f8fa7c 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysImportFanWxAccount.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysImportFanWxAccount.java @@ -33,6 +33,11 @@ public class SysImportFanWxAccount extends BaseEntity @Excel(name = "导粉数量") private Long importFanNum; + /** 导粉时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + @Excel(name = "导粉时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm") + private Date importTime; + /** 删除标识 0未删除 1已删除 */ private Long delFlag; diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysRecipesPlanMapper.java b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysRecipesPlanMapper.java index 2b58ea0b1..65cb65f5d 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysRecipesPlanMapper.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysRecipesPlanMapper.java @@ -2,6 +2,8 @@ package com.stdiet.custom.mapper; import java.util.Date; import java.util.List; +import java.util.Map; + import com.stdiet.custom.domain.SysRecipesPlan; import com.stdiet.custom.domain.SysRecipesPlanListInfo; import org.apache.ibatis.annotations.Param; @@ -117,4 +119,11 @@ public interface SysRecipesPlanMapper * @return */ int updateMuchRecipesPlanDate(SysRecipesPlan sysRecipesPlan); + + /** + * 查询食谱计划中对应食谱存在天数缺失的食谱计划 + * @param cusId + * @return + */ + List> getNeedSupplyRecipesByCusId(@Param("cusId")Long cusId); } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesPlanService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesPlanService.java index 8a86d0858..634f5cb07 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesPlanService.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesPlanService.java @@ -2,6 +2,7 @@ package com.stdiet.custom.service; import java.util.Date; import java.util.List; +import java.util.Map; import com.stdiet.custom.domain.SysRecipesPlan; import com.stdiet.custom.domain.SysRecipesPlanListInfo; @@ -122,4 +123,11 @@ public interface ISysRecipesPlanService */ List selectPlanListByCusId(Long cusId); + /** + * 查询食谱计划中对应食谱存在天数缺失的食谱计划 + * @param cusId + * @return + */ + List> getNeedSupplyRecipesByCusId(Long cusId); + } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysImportFanRecordServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysImportFanRecordServiceImpl.java index 9c5fb2be2..362353db3 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysImportFanRecordServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysImportFanRecordServiceImpl.java @@ -72,15 +72,18 @@ public class SysImportFanRecordServiceImpl implements ISysImportFanRecordService sysImportFanWxAccount.setImportFanRecordId(record != null ? record.getId() : sysImportFanRecord.getId()); sysImportFanWxAccount.setImportWxAccountId(sysImportFanRecord.getWxAccountId()); sysImportFanWxAccount.setImportFanNum(sysImportFanRecord.getFanNum()); + sysImportFanWxAccount.setImportTime(sysImportFanRecord.getImportTime()); sysImportFanWxAccount.setCreateTime(new Date()); + row = sysImportFanWxAccountService.insertSysImportFanWxAccount(sysImportFanWxAccount); + //根据微信号、导粉记录查询是否存在 - SysImportFanWxAccount oldFanWxAccount = sysImportFanWxAccountService.getWxAccountByFanRecordId(sysImportFanWxAccount); + /*SysImportFanWxAccount oldFanWxAccount = sysImportFanWxAccountService.getWxAccountByFanRecordId(sysImportFanWxAccount); if(oldFanWxAccount == null){ row = sysImportFanWxAccountService.insertSysImportFanWxAccount(sysImportFanWxAccount); }else{ oldFanWxAccount.setImportFanNum((oldFanWxAccount.getImportFanNum() == null ? 0 : oldFanWxAccount.getImportFanNum()) + sysImportFanWxAccount.getImportFanNum()); row = sysImportFanWxAccountService.updateSysImportFanWxAccount(oldFanWxAccount); - } + }*/ } return row; } diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java index dc91bcc46..8186cd083 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java @@ -4,10 +4,8 @@ import com.stdiet.common.utils.DateUtils; import com.stdiet.common.utils.StringUtils; import com.stdiet.common.utils.SynchrolockUtil; import com.stdiet.common.utils.sign.Md5Utils; -import com.stdiet.custom.domain.SysOrder; -import com.stdiet.custom.domain.SysOrderPause; -import com.stdiet.custom.domain.SysRecipesPlan; -import com.stdiet.custom.domain.SysRecipesPlanListInfo; +import com.stdiet.custom.domain.*; +import com.stdiet.custom.mapper.SysRecipesMapper; import com.stdiet.custom.mapper.SysRecipesPlanMapper; import com.stdiet.custom.service.*; import org.springframework.beans.factory.annotation.Autowired; @@ -43,6 +41,8 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService { private IWechatAppletService wechatAppletService; @Autowired private ISysCustomerService sysCustomerService; + @Autowired + private SysRecipesMapper sysRecipesMapper; /** * 查询食谱计划 @@ -151,7 +151,7 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService { @Async public void regenerateRecipesPlan(Long cusId) { try { - Thread.sleep(5000); + Thread.sleep(3000); } catch (Exception e) { e.printStackTrace(); } @@ -196,6 +196,8 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService { } } } + //食谱计划更新完成之后需要查询是否存在天数缺失情况,进行补充 + supplyRecipesBmenu(cusId); } } } catch (Exception e) { @@ -206,6 +208,34 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService { } } + /** + * 查询食谱计划中对应食谱存在天数缺失的食谱计划,食谱计划发生变化时,可能会导致sys_customer_daily_menu表中天数缺失,需要查询出来进行补充 + * @param cusId 客户ID + */ + private void supplyRecipesBmenu(Long cusId){ + List> list = getNeedSupplyRecipesByCusId(cusId); + if(list != null && list.size() > 0){ + for (Map map : list) { + Long recipesId = (Long)map.get("recipesId"); + Integer enNumDay = (Integer)map.get("enNumDay"); + Integer maxNumDay = (Integer)map.get("maxNumDay"); + if(recipesId != null && enNumDay != null && maxNumDay != null){ + List menus = new ArrayList<>(); + for (int i = maxNumDay+1; i <= enNumDay; i++) { + SysRecipesDaily daily = new SysRecipesDaily(); + daily.setCusId(cusId); + daily.setNumDay(i); + daily.setRecipesId(recipesId); + menus.add(daily); + } + sysRecipesMapper.bashAddMenus(menus); + } + } + } + } + + + /** * 更新食谱计划,删除旧食谱中多余的,添加新食谱中多的 * @@ -474,4 +504,13 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService { } } + /** + * 查询食谱计划中对应食谱存在天数缺失的食谱计划 + * @param cusId + * @return + */ + public List> getNeedSupplyRecipesByCusId(Long cusId){ + return sysRecipesPlanMapper.getNeedSupplyRecipesByCusId(cusId); + } + } \ No newline at end of file diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysImportFanRecordMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysImportFanRecordMapper.xml index f7966e605..e8bf59c8b 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysImportFanRecordMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysImportFanRecordMapper.xml @@ -58,12 +58,13 @@ select fwc.id, fwc.import_fan_record_id as importFanRecordId, fwc.import_wx_account_id as importWxAccountId, fwc.import_fan_num as importFanNum, - su.nick_name as saleName,wa.wx_account as wxAccount + DATE_FORMAT(fwc.import_time,'%Y-%m-%d %H:%i') as importTime,su.nick_name as saleName,wa.wx_account as wxAccount from sys_import_fan_wx_account fwc left join sys_wx_sale_account wa on wa.id = fwc.import_wx_account_id and wa.del_flag = 0 left join sys_wx_distribution swd on swd.wechat_account = wa.id and swd.del_flag = 0 diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysImportFanWxAccountMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysImportFanWxAccountMapper.xml index 3696cf7eb..071fa46dd 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysImportFanWxAccountMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysImportFanWxAccountMapper.xml @@ -9,6 +9,7 @@ + @@ -17,7 +18,7 @@ - select id, import_fan_record_id, import_wx_account_id, import_fan_num, create_time, create_by, update_time, update_by, del_flag from sys_import_fan_wx_account + select id, import_fan_record_id, import_wx_account_id, import_fan_num,import_time, create_time, create_by, update_time, update_by, del_flag from sys_import_fan_wx_account + select plan.recipes_id as recipesId,plan.end_num_day as enNumDay,s.maxNumDay from sys_recipes_plan as plan left join + + ( + select recipes_id,count(1) as dayNum,max(num_day) as maxNumDay from sys_customer_daily_menu where cus_id = #{cusId} and recipes_id is not null group by recipes_id + ) + as s on s.recipes_id = plan.recipes_id + + where plan.cus_id = #{cusId} and plan.del_flag = 0 and plan.recipes_id is not null and plan.end_num_day > s.maxNumDay + \ No newline at end of file diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysWxSaleAccountMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysWxSaleAccountMapper.xml index 992f0268c..01e783407 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysWxSaleAccountMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysWxSaleAccountMapper.xml @@ -22,6 +22,7 @@ + @@ -140,7 +141,7 @@