导粉记录,订单条件筛选,食谱计划生成优化
This commit is contained in:
		| @@ -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; | ||||
|   | ||||
| @@ -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; | ||||
|  | ||||
|   | ||||
| @@ -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<Map<String,Object>> getNeedSupplyRecipesByCusId(@Param("cusId")Long cusId); | ||||
| } | ||||
| @@ -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<SysRecipesPlan> selectPlanListByCusId(Long cusId); | ||||
|  | ||||
|     /** | ||||
|      * 查询食谱计划中对应食谱存在天数缺失的食谱计划 | ||||
|      * @param cusId | ||||
|      * @return | ||||
|      */ | ||||
|     List<Map<String,Object>> getNeedSupplyRecipesByCusId(Long cusId); | ||||
|  | ||||
| } | ||||
| @@ -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; | ||||
|     } | ||||
|   | ||||
| @@ -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<Map<String,Object>> list = getNeedSupplyRecipesByCusId(cusId); | ||||
|         if(list != null && list.size() > 0){ | ||||
|             for (Map<String,Object> 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<SysRecipesDaily> 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<Map<String,Object>> getNeedSupplyRecipesByCusId(Long cusId){ | ||||
|         return sysRecipesPlanMapper.getNeedSupplyRecipesByCusId(cusId); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -58,12 +58,13 @@ | ||||
|     </select> | ||||
|  | ||||
|     <select id="selectTotalSysImportFanNum" parameterType="SysImportFanRecord" resultType="int"> | ||||
|         select sum(fwa.import_fan_num) | ||||
|         from sys_import_fan_record as fc | ||||
|         left join sys_import_fan_wx_account fwa on fwa.import_fan_record_id = fc.id and fwa.del_flag = 0 | ||||
|         where fc.del_flag = 0 | ||||
|         <if test="importFanDate != null "> and fc.import_fan_date = #{importFanDate}</if> | ||||
|         <if test="importFanChannel != null "> and fc.import_fan_channel = #{importFanChannel}</if> | ||||
|         select ifnull(sum(fwa.import_fan_num),0) from sys_import_fan_wx_account fwa | ||||
|         where fwa.del_flag = 0 and fwa.import_fan_record_id in | ||||
|         ( | ||||
|           select fc.id from sys_import_fan_record as fc where fc.del_flag = 0 | ||||
|           <if test="importFanDate != null "> and fc.import_fan_date = #{importFanDate}</if> | ||||
|           <if test="importFanChannel != null "> and fc.import_fan_channel = #{importFanChannel}</if> | ||||
|         ) | ||||
|     </select> | ||||
|  | ||||
|     <select id="selectSysImportFanRecordById" parameterType="Long" resultMap="SysImportFanRecordResult"> | ||||
| @@ -129,7 +130,7 @@ | ||||
|  | ||||
|     <select id="getWxAccountListByFanRecordId" parameterType="Long" resultType="Map"> | ||||
|         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 | ||||
|   | ||||
| @@ -9,6 +9,7 @@ | ||||
|         <result property="importFanRecordId"    column="import_fan_record_id"    /> | ||||
|         <result property="importWxAccountId"    column="import_wx_account_id"    /> | ||||
|         <result property="importFanNum"    column="import_fan_num"    /> | ||||
|         <result property="importTime"    column="import_time"    /> | ||||
|         <result property="createTime"    column="create_time"    /> | ||||
|         <result property="createBy"    column="create_by"    /> | ||||
|         <result property="updateTime"    column="update_time"    /> | ||||
| @@ -17,7 +18,7 @@ | ||||
|     </resultMap> | ||||
|  | ||||
|     <sql id="selectSysImportFanWxAccountVo"> | ||||
|         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 | ||||
|     </sql> | ||||
|  | ||||
|     <select id="selectSysImportFanWxAccountList" parameterType="SysImportFanWxAccount" resultMap="SysImportFanWxAccountResult"> | ||||
| @@ -38,6 +39,7 @@ | ||||
|             <if test="importFanRecordId != null">import_fan_record_id,</if> | ||||
|             <if test="importWxAccountId != null">import_wx_account_id,</if> | ||||
|             <if test="importFanNum != null">import_fan_num,</if> | ||||
|             <if test="importTime != null">import_time,</if> | ||||
|             <if test="createTime != null">create_time,</if> | ||||
|             <if test="createBy != null">create_by,</if> | ||||
|             <if test="updateTime != null">update_time,</if> | ||||
| @@ -48,6 +50,7 @@ | ||||
|             <if test="importFanRecordId != null">#{importFanRecordId},</if> | ||||
|             <if test="importWxAccountId != null">#{importWxAccountId},</if> | ||||
|             <if test="importFanNum != null">#{importFanNum},</if> | ||||
|             <if test="importTime != null">#{importTime},</if> | ||||
|             <if test="createTime != null">#{createTime},</if> | ||||
|             <if test="createBy != null">#{createBy},</if> | ||||
|             <if test="updateTime != null">#{updateTime},</if> | ||||
| @@ -62,6 +65,7 @@ | ||||
|             <if test="importFanRecordId != null">import_fan_record_id = #{importFanRecordId},</if> | ||||
|             <if test="importWxAccountId != null">import_wx_account_id = #{importWxAccountId},</if> | ||||
|             <if test="importFanNum != null">import_fan_num = #{importFanNum},</if> | ||||
|             <if test="importTime != null">import_time = #{importTime},</if> | ||||
|             <if test="createTime != null">create_time = #{createTime},</if> | ||||
|             <if test="createBy != null">create_by = #{createBy},</if> | ||||
|             <if test="updateTime != null">update_time = #{updateTime},</if> | ||||
|   | ||||
| @@ -284,4 +284,16 @@ | ||||
|         update sys_recipes_plan set start_date = #{startDate},end_date = #{endDate},pause_date=#{pauseDate} where id = | ||||
|         #{id} | ||||
|     </update> | ||||
|  | ||||
|     <!-- 查询食谱计划中对应食谱存在天数缺失的食谱计划,食谱计划发生变化时,可能会导致sys_customer_daily_menu表中天数缺失,需要查询出来进行补充 --> | ||||
|     <select id="getNeedSupplyRecipesByCusId" parameterType="Long" resultType="Map"> | ||||
|         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 | ||||
|     </select> | ||||
| </mapper> | ||||
| @@ -22,6 +22,7 @@ | ||||
|  | ||||
|         <!-- 销售 --> | ||||
|         <result property="saleName" column="sale_name"></result> | ||||
|         <result property="channel" column="channel"></result> | ||||
|     </resultMap> | ||||
|  | ||||
|     <sql id="selectSysWxSaleAccountVo"> | ||||
| @@ -140,7 +141,7 @@ | ||||
|  | ||||
|     <!-- 查询可以接粉的微信号以及对应销售,用于导粉记录管理 --> | ||||
|     <select id="getWxAccountAndSale" resultMap="SysWxSaleAccountResult"> | ||||
|         select wa.id, wa.wx_account, su.nick_name as sale_name | ||||
|         select wa.id, wa.wx_account, swd.account_id as channel, su.nick_name as sale_name | ||||
|         from sys_wx_sale_account wa | ||||
|         left join sys_wx_distribution swd on wa.id = swd.wechat_account and swd.del_flag = 0 | ||||
|         LEFT JOIN sys_user su ON su.user_id = swd.user_id AND su.del_flag = 0 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user