Bläddra i källkod

Merge branch 'master' of http://git.ds-bay.com/project/kmall-pt-general

hhq 4 år sedan
förälder
incheckning
1159612c11
33 ändrade filer med 1295 tillägg och 152 borttagningar
  1. 16 5
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsBatchController.java
  2. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java
  3. 118 0
      kmall-admin/src/main/java/com/kmall/admin/controller/alarm/Mall2ReminderRulesConfigController.java
  4. 4 0
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsBatchDao.java
  5. 22 0
      kmall-admin/src/main/java/com/kmall/admin/dao/alarm/Mall2ReminderRulesConfigDao.java
  6. 223 0
      kmall-admin/src/main/java/com/kmall/admin/entity/alarm/Mall2ReminderRulesConfigEntity.java
  7. 2 0
      kmall-admin/src/main/java/com/kmall/admin/service/GoodsBatchService.java
  8. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/alarm/Mall2ReminderRulesConfigService.java
  9. 5 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsBatchServiceImpl.java
  10. 127 52
      kmall-admin/src/main/java/com/kmall/admin/service/impl/alarm/Mall2OrderingEarlyWarningRemindsServiceImpl.java
  11. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/alarm/Mall2ReminderRulesConfigServiceImpl.java
  12. 126 50
      kmall-admin/src/main/java/com/kmall/admin/service/impl/alarm/Mall2ShippingReminderAlarmServiceImpl.java
  13. 5 2
      kmall-admin/src/main/resources/mybatis/mapper/GoodsBatchDao.xml
  14. 4 4
      kmall-admin/src/main/resources/mybatis/mapper/GoodsTransportInfoDetailDao.xml
  15. 1 1
      kmall-admin/src/main/resources/mybatis/mapper/alarm/Mall2OrderingEarlyWarningRemindsDao.xml
  16. 148 0
      kmall-admin/src/main/resources/mybatis/mapper/alarm/Mall2ReminderRulesConfigDao.xml
  17. 5 5
      kmall-admin/src/main/resources/mybatis/mapper/mk/store/MkStoreTopicStatDao.xml
  18. 60 0
      kmall-admin/src/main/webapp/WEB-INF/page/alarm/mall2reminderrulesconfig.html
  19. 4 3
      kmall-admin/src/main/webapp/WEB-INF/page/sale/goodsPanorama.html
  20. 1 1
      kmall-admin/src/main/webapp/WEB-INF/page/statis/mkstoretopicstat.html
  21. 1 1
      kmall-admin/src/main/webapp/js/alarm/mall2orderingearlywarningreminds.js
  22. 192 0
      kmall-admin/src/main/webapp/js/alarm/mall2reminderrulesconfig.js
  23. 8 2
      kmall-admin/src/main/webapp/js/alarm/mall2shippingreminderalarm.js
  24. 6 0
      kmall-admin/src/main/webapp/js/cashier/cashierManager.js
  25. 6 0
      kmall-admin/src/main/webapp/js/mk/mk2memberbirthday.js
  26. 30 12
      kmall-admin/src/main/webapp/js/sale/goodsPanorama.js
  27. 7 1
      kmall-admin/src/main/webapp/js/shop/cart.js
  28. 7 1
      kmall-admin/src/main/webapp/js/shop/collect.js
  29. 7 1
      kmall-admin/src/main/webapp/js/shop/footprint.js
  30. 12 6
      kmall-admin/src/main/webapp/js/shop/searchhistory.js
  31. 5 0
      kmall-admin/src/main/webapp/js/shop/storeProductStock.js
  32. 8 1
      kmall-admin/src/main/webapp/js/shop/userlevel.js
  33. 3 3
      kmall-admin/src/main/webapp/js/statis/mkstoretopicstat.js

+ 16 - 5
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsBatchController.java

@@ -1,9 +1,6 @@
 package com.kmall.admin.controller;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
+import com.kmall.admin.entity.GoodsBatchEntity;
 import com.kmall.admin.service.GoodsBatchService;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
@@ -12,7 +9,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
-import com.kmall.admin.entity.GoodsBatchEntity;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 批次(多)— SKU(多)Controller
@@ -104,4 +102,17 @@ public class GoodsBatchController {
 
         return R.ok().put("list", list);
     }
+
+
+    /**
+     * 根据sku查批次列表
+     * @param sku
+     * @return
+     */
+    @RequestMapping("/queryListBySku")
+    @ResponseBody
+    public R queryListBySku(@RequestParam String sku) {
+        List<GoodsBatchEntity> list = goodsBatchService.queryListBySku(sku);
+        return R.ok().put("goodsBatchList",list);
+    }
 }

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java

@@ -54,7 +54,7 @@ public class StoreController {
     public R list(@RequestParam Map<String, Object> params) {
 
         ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", "thirdPartyMerchCode");
-        ParamUtils.setName(params, "storeName");
+//        ParamUtils.setName(params, "storeName");
         //查询列表数据
         Query query = new Query(params);
 

+ 118 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/alarm/Mall2ReminderRulesConfigController.java

@@ -0,0 +1,118 @@
+package com.kmall.admin.controller.alarm;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.fromcomm.entity.SysUserEntity;
+import com.kmall.admin.utils.ShiroUtils;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity;
+import com.kmall.admin.service.alarm.Mall2ReminderRulesConfigService;
+
+/**
+ * 提醒规则配置表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-18 13:59:51
+ */
+@Controller
+@RequestMapping("mall2reminderrulesconfig")
+public class Mall2ReminderRulesConfigController {
+    @Autowired
+    private Mall2ReminderRulesConfigService mall2ReminderRulesConfigService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+//    @RequiresPermissions("mall2reminderrulesconfig:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<Mall2ReminderRulesConfigEntity> mall2ReminderRulesConfigList = mall2ReminderRulesConfigService.queryList(query);
+        int total = mall2ReminderRulesConfigService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(mall2ReminderRulesConfigList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{mrrcId}")
+//    @RequiresPermissions("mall2reminderrulesconfig:info")
+    @ResponseBody
+    public R info(@PathVariable("mrrcId") Integer mrrcId) {
+        Mall2ReminderRulesConfigEntity mall2ReminderRulesConfig = mall2ReminderRulesConfigService.queryObject(mrrcId);
+
+        return R.ok().put("mall2ReminderRulesConfig", mall2ReminderRulesConfig);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+//    @RequiresPermissions("mall2reminderrulesconfig:save")
+    @ResponseBody
+    public R save(@RequestBody Mall2ReminderRulesConfigEntity mall2ReminderRulesConfig) {
+
+        SysUserEntity userEntity = ShiroUtils.getUserEntity();
+        if(userEntity == null){
+            return R.error("未找到该管理员");
+        }
+        mall2ReminderRulesConfig.setMerchSn(userEntity.getMerchSn());
+        mall2ReminderRulesConfig.setThridMerchSn(userEntity.getThirdPartyMerchCode());
+
+
+        mall2ReminderRulesConfigService.save(mall2ReminderRulesConfig);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+//    @RequiresPermissions("mall2reminderrulesconfig:update")
+    @ResponseBody
+    public R update(@RequestBody Mall2ReminderRulesConfigEntity mall2ReminderRulesConfig) {
+        mall2ReminderRulesConfigService.update(mall2ReminderRulesConfig);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+//    @RequiresPermissions("mall2reminderrulesconfig:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]mrrcIds) {
+        mall2ReminderRulesConfigService.deleteBatch(mrrcIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<Mall2ReminderRulesConfigEntity> list = mall2ReminderRulesConfigService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 4 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsBatchDao.java

@@ -2,6 +2,9 @@ package com.kmall.admin.dao;
 
 import com.kmall.admin.entity.GoodsBatchEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 批次(多)— SKU(多)Dao
@@ -12,4 +15,5 @@ import com.kmall.manager.dao.BaseDao;
  */
 public interface GoodsBatchDao extends BaseDao<GoodsBatchEntity> {
 
+    List<GoodsBatchEntity> queryListBySku(@Param("sku") String sku);
 }

+ 22 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/alarm/Mall2ReminderRulesConfigDao.java

@@ -0,0 +1,22 @@
+package com.kmall.admin.dao.alarm;
+
+import com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity;
+import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 提醒规则配置表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-18 13:59:51
+ */
+public interface Mall2ReminderRulesConfigDao extends BaseDao<Mall2ReminderRulesConfigEntity> {
+
+    /**
+     * 查询该商户的出货提醒规则
+     * @param merchSn
+     * @return
+     */
+    Mall2ReminderRulesConfigEntity queryByMerchSn(@Param("merchSn") String merchSn,@Param("reminderCategory") String reminderCategory);
+}

+ 223 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/alarm/Mall2ReminderRulesConfigEntity.java

@@ -0,0 +1,223 @@
+package com.kmall.admin.entity.alarm;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 提醒规则配置表实体
+ * 表名 mall2_reminder_rules_config
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-18 13:59:51
+ */
+public class Mall2ReminderRulesConfigEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 规则配置id
+     */
+    private Integer mrrcId;
+    /**
+     * 商户编号
+     */
+    private String merchSn;
+    private String merchName;
+    /**
+     * 第三方商户编号
+     */
+    private String thridMerchSn;
+    private String thridMerchName;
+    /**
+     * 提醒类别  0.出货提醒 1.订货提醒
+     */
+    private String reminderCategory;
+    /**
+     * 提醒类型 00.固定值  10.周期计算(天)
+     */
+    private String reminderType;
+    /**
+     * 提醒值
+     */
+    private Integer reminderValue;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间,yyyy-MM-dd HH:mm:ss
+     */
+    private Date createTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+    /**
+     * 修改时间,yyyy-MM-dd HH:mm:ss
+     */
+    private Date modTime;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+    /**
+     * 设置:规则配置id
+     */
+    public void setMrrcId(Integer mrrcId) {
+        this.mrrcId = mrrcId;
+    }
+
+    /**
+     * 获取:规则配置id
+     */
+    public Integer getMrrcId() {
+        return mrrcId;
+    }
+    /**
+     * 设置:商户编号
+     */
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
+    /**
+     * 获取:商户编号
+     */
+    public String getMerchSn() {
+        return merchSn;
+    }
+    /**
+     * 设置:第三方商户编号
+     */
+    public void setThridMerchSn(String thridMerchSn) {
+        this.thridMerchSn = thridMerchSn;
+    }
+
+    /**
+     * 获取:第三方商户编号
+     */
+    public String getThridMerchSn() {
+        return thridMerchSn;
+    }
+    /**
+     * 设置:提醒类别  0.出货提醒 1.订货提醒
+     */
+    public void setReminderCategory(String reminderCategory) {
+        this.reminderCategory = reminderCategory;
+    }
+
+    /**
+     * 获取:提醒类别  0.出货提醒 1.订货提醒
+     */
+    public String getReminderCategory() {
+        return reminderCategory;
+    }
+    /**
+     * 设置:提醒类型 00.固定值  10.周期计算(天)
+     */
+    public void setReminderType(String reminderType) {
+        this.reminderType = reminderType;
+    }
+
+    /**
+     * 获取:提醒类型 00.固定值  10.周期计算(天)
+     */
+    public String getReminderType() {
+        return reminderType;
+    }
+    /**
+     * 设置:提醒值
+     */
+    public void setReminderValue(Integer reminderValue) {
+        this.reminderValue = reminderValue;
+    }
+
+    /**
+     * 获取:提醒值
+     */
+    public Integer getReminderValue() {
+        return reminderValue;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间,yyyy-MM-dd HH:mm:ss
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间,yyyy-MM-dd HH:mm:ss
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+    /**
+     * 设置:修改时间,yyyy-MM-dd HH:mm:ss
+     */
+    public void setModTime(Date modTime) {
+        this.modTime = modTime;
+    }
+
+    /**
+     * 获取:修改时间,yyyy-MM-dd HH:mm:ss
+     */
+    public Date getModTime() {
+        return modTime;
+    }
+    /**
+     * 设置:时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+
+    public String getMerchName() {
+        return merchName;
+    }
+
+    public void setMerchName(String merchName) {
+        this.merchName = merchName;
+    }
+
+    public String getThridMerchName() {
+        return thridMerchName;
+    }
+
+    public void setThridMerchName(String thridMerchName) {
+        this.thridMerchName = thridMerchName;
+    }
+}

+ 2 - 0
kmall-admin/src/main/java/com/kmall/admin/service/GoodsBatchService.java

@@ -69,4 +69,6 @@ public interface GoodsBatchService {
      * @return 删除条数
      */
     int deleteBatch(Integer[] ids);
+
+    List<GoodsBatchEntity> queryListBySku(String sku);
 }

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/alarm/Mall2ReminderRulesConfigService.java

@@ -0,0 +1,72 @@
+package com.kmall.admin.service.alarm;
+
+import com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 提醒规则配置表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-18 13:59:51
+ */
+public interface Mall2ReminderRulesConfigService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param mrrcId 主键
+     * @return 实体
+     */
+    Mall2ReminderRulesConfigEntity queryObject(Integer mrrcId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<Mall2ReminderRulesConfigEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param mall2ReminderRulesConfig 实体
+     * @return 保存条数
+     */
+    int save(Mall2ReminderRulesConfigEntity mall2ReminderRulesConfig);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param mall2ReminderRulesConfig 实体
+     * @return 更新条数
+     */
+    int update(Mall2ReminderRulesConfigEntity mall2ReminderRulesConfig);
+
+    /**
+     * 根据主键删除
+     *
+     * @param mrrcId
+     * @return 删除条数
+     */
+    int delete(Integer mrrcId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param mrrcIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] mrrcIds);
+}

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsBatchServiceImpl.java

@@ -56,4 +56,9 @@ public class GoodsBatchServiceImpl implements GoodsBatchService {
     public int deleteBatch(Integer[]ids) {
         return goodsBatchDao.deleteBatch(ids);
     }
+
+    @Override
+    public List<GoodsBatchEntity> queryListBySku(String sku) {
+        return goodsBatchDao.queryListBySku(sku);
+    }
 }

+ 127 - 52
kmall-admin/src/main/java/com/kmall/admin/service/impl/alarm/Mall2OrderingEarlyWarningRemindsServiceImpl.java

@@ -4,10 +4,12 @@ import com.kmall.admin.dao.GoodsDao;
 import com.kmall.admin.dao.MerchDao;
 import com.kmall.admin.dao.ProductStoreRelaDao;
 import com.kmall.admin.dao.StoreDao;
+import com.kmall.admin.dao.alarm.Mall2ReminderRulesConfigDao;
 import com.kmall.admin.entity.GoodsEntity;
 import com.kmall.admin.entity.MerchEntity;
 import com.kmall.admin.entity.ProductStoreRelaEntity;
 import com.kmall.admin.entity.StoreEntity;
+import com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity;
 import com.kmall.admin.entity.alarm.Mall2ShippingReminderAlarmEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -31,6 +33,8 @@ import org.springframework.transaction.annotation.Transactional;
 public class Mall2OrderingEarlyWarningRemindsServiceImpl implements Mall2OrderingEarlyWarningRemindsService {
     @Autowired
     private Mall2OrderingEarlyWarningRemindsDao mall2OrderingEarlyWarningRemindsDao;
+    @Autowired
+    private Mall2ReminderRulesConfigDao mall2ReminderRulesConfigDao;
 
     @Autowired
     private MerchDao merchDao; // 商户
@@ -85,6 +89,14 @@ public class Mall2OrderingEarlyWarningRemindsServiceImpl implements Mall2Orderin
 
         // 遍历商户集合,查询商户下所有的门店
         for(MerchEntity merchEntity : merchEntities) {
+
+
+            // 查询商户的出货预警规则,若无规则,则不继续进行
+            Mall2ReminderRulesConfigEntity rulesConfigEntity = mall2ReminderRulesConfigDao.queryByMerchSn(merchEntity.getMerchSn(),"1");
+            if(rulesConfigEntity == null){
+                continue;
+            }
+
             String merchSn = merchEntity.getMerchSn();
             Map<String,Object> goodsParam = new HashMap<>();
             goodsParam.put("merchSn", merchSn);
@@ -112,71 +124,63 @@ public class Mall2OrderingEarlyWarningRemindsServiceImpl implements Mall2Orderin
                     continue;
                 }
                 storeRelaParam = null;
-
                 // 获取商品库存
                 Integer goodsNumber = goodsEntity.getGoodsNumber();
-
                 // 总库存
                 Integer totalNum = goodsNumber ;
                 // 总平均销售量
                 Integer totalSellVolumn = 0;
+                // 提醒类型 00.固定值  10.周期计算
+                String reminderType = rulesConfigEntity.getReminderType();
+                // 提醒值
+                Integer reminderValue = rulesConfigEntity.getReminderValue();
 
                 // 遍历商品集合,计算商品的平均库存
                 for(ProductStoreRelaEntity productStoreRelaEntity : productStoreRelaEntities){
-                    // 商品id
-                    Long goodsId = productStoreRelaEntity.getGoodsId();
-                    // 该商品的销售量
-                    Integer sellVolume = productStoreRelaEntity.getSellVolume();
-                    // 获取当前时间
-                    Date date = new Date();
-                    // 获取该商品的创建时间
-                    Date createTime = productStoreRelaEntity.getCreateTime();
-                    // 相差的天数
-                    int days = (int) ((date.getTime() - createTime.getTime()) / (1000*3600*24));
-                    days = days == 0? 1 : days;
-                    // 一周平均销售量
-                    Integer avaerageSellVolume = new BigDecimal(sellVolume).divide(new BigDecimal(days),2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(7))
-                            .setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
-                    totalSellVolumn += avaerageSellVolume;
-                    // 该商品的库存
-                    Integer stockNum = productStoreRelaEntity.getStockNum();
-                    totalNum += stockNum;
-                }
 
-                if(totalNum <= totalSellVolumn){
-                    Mall2OrderingEarlyWarningRemindsEntity orderingEarlyWarningRemindsEntity = mall2OrderingEarlyWarningRemindsDao.queryByGoodsId(goodsEntity.getId());
-                    if(orderingEarlyWarningRemindsEntity == null){
-                        orderingEarlyWarningRemindsEntity = new Mall2OrderingEarlyWarningRemindsEntity();
-                        orderingEarlyWarningRemindsEntity.setAverageSales(new BigDecimal(totalSellVolumn));
-                        orderingEarlyWarningRemindsEntity.setSku(goodsEntity.getGoodsSn());
-                        orderingEarlyWarningRemindsEntity.setTotalNum(totalNum);
-                        orderingEarlyWarningRemindsEntity.setGoodsId(goodsEntity.getId().intValue());
-                        orderingEarlyWarningRemindsEntity.setGoodsName(goodsEntity.getName());
-                        orderingEarlyWarningRemindsEntity.setAlarmType("00");
-                        orderingEarlyWarningRemindsEntity.setAlarmTime(new Date());
-                        orderingEarlyWarningRemindsEntity.setIsWarning(1);
-                        orderingEarlyWarningRemindsEntity.setCreateTime(new Date());
-
-                        insertRemiderList.add(orderingEarlyWarningRemindsEntity);
-                    }else{
-                        orderingEarlyWarningRemindsEntity.setAlarmTime(new Date());
-                        orderingEarlyWarningRemindsEntity.setAverageSales(new BigDecimal(totalSellVolumn));
-                        orderingEarlyWarningRemindsEntity.setTotalNum(totalNum);
-                        orderingEarlyWarningRemindsEntity.setIsWarning(1);
-                        orderingEarlyWarningRemindsEntity.setModTime(new Date());
-
-                        updateRemiderList.add(orderingEarlyWarningRemindsEntity);
-                    }
+                    if("00".equalsIgnoreCase(reminderType)){
+                        // 商品id
+                        Long goodsId = productStoreRelaEntity.getGoodsId();
+                        // 该商品的库存
+                        Integer stockNum = productStoreRelaEntity.getStockNum();
+                        totalNum += stockNum;
 
-                }else{
-                    Mall2OrderingEarlyWarningRemindsEntity orderingEarlyWarningRemindsEntity = mall2OrderingEarlyWarningRemindsDao.queryByGoodsId(goodsEntity.getId());
-                    if( orderingEarlyWarningRemindsEntity != null){
-                        orderingEarlyWarningRemindsEntity.setIsWarning(0);
-                        orderingEarlyWarningRemindsEntity.setModTime(new Date());
-                        updateRemiderList.add(orderingEarlyWarningRemindsEntity);
+                    }else if("10".equalsIgnoreCase(reminderType)){
+                        // 商品id
+                        Long goodsId = productStoreRelaEntity.getGoodsId();
+                        // 该商品的销售量
+                        Integer sellVolume = productStoreRelaEntity.getSellVolume();
+                        // 获取当前时间
+                        Date date = new Date();
+                        // 获取该商品的创建时间
+                        Date createTime = productStoreRelaEntity.getCreateTime();
+                        // 相差的天数
+                        int days = (int) ((date.getTime() - createTime.getTime()) / (1000*3600*24));
+                        days = days == 0? 1 : days;
+                        // 一周平均销售量
+                        Integer avaerageSellVolume = new BigDecimal(sellVolume).divide(new BigDecimal(days),2, BigDecimal.ROUND_HALF_UP)
+                                .setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
+                        if(days >= reminderValue){
+                            avaerageSellVolume = avaerageSellVolume * reminderValue;
+                        }
+                        totalSellVolumn += avaerageSellVolume;
+                        // 该商品的库存
+                        Integer stockNum = productStoreRelaEntity.getStockNum();
+                        totalNum += stockNum;
                     }
+
+                }
+
+
+                if("00".equalsIgnoreCase(reminderType)){
+                    fixedValue(insertRemiderList, updateRemiderList, goodsEntity, totalNum, reminderValue);
+
+                }else if("10".equalsIgnoreCase(reminderType)){
+                    averageCalculation(insertRemiderList, updateRemiderList, goodsEntity, totalNum, totalSellVolumn);
+                }
                 }
-            }
+
+
 
             if(insertRemiderList != null && insertRemiderList.size() > 0) {
                 mall2OrderingEarlyWarningRemindsDao.insertBatch(insertRemiderList);
@@ -189,4 +193,75 @@ public class Mall2OrderingEarlyWarningRemindsServiceImpl implements Mall2Orderin
             updateRemiderList = null;
         }
     }
+
+    private void averageCalculation(List<Mall2OrderingEarlyWarningRemindsEntity> insertRemiderList, List<Mall2OrderingEarlyWarningRemindsEntity> updateRemiderList, GoodsEntity goodsEntity, Integer totalNum, Integer totalSellVolumn) {
+        if(totalNum <= totalSellVolumn){
+            Mall2OrderingEarlyWarningRemindsEntity orderingEarlyWarningRemindsEntity = mall2OrderingEarlyWarningRemindsDao.queryByGoodsId(goodsEntity.getId());
+            if(orderingEarlyWarningRemindsEntity == null){
+                orderingEarlyWarningRemindsEntity = new Mall2OrderingEarlyWarningRemindsEntity();
+                orderingEarlyWarningRemindsEntity.setAverageSales(new BigDecimal(totalSellVolumn));
+                orderingEarlyWarningRemindsEntity.setSku(goodsEntity.getGoodsSn());
+                orderingEarlyWarningRemindsEntity.setTotalNum(totalNum);
+                orderingEarlyWarningRemindsEntity.setGoodsId(goodsEntity.getId().intValue());
+                orderingEarlyWarningRemindsEntity.setGoodsName(goodsEntity.getName());
+                orderingEarlyWarningRemindsEntity.setAlarmType("00");
+                orderingEarlyWarningRemindsEntity.setAlarmTime(new Date());
+                orderingEarlyWarningRemindsEntity.setIsWarning(1);
+                orderingEarlyWarningRemindsEntity.setCreateTime(new Date());
+
+                insertRemiderList.add(orderingEarlyWarningRemindsEntity);
+            }else{
+                orderingEarlyWarningRemindsEntity.setAlarmTime(new Date());
+                orderingEarlyWarningRemindsEntity.setAverageSales(new BigDecimal(totalSellVolumn));
+                orderingEarlyWarningRemindsEntity.setTotalNum(totalNum);
+                orderingEarlyWarningRemindsEntity.setIsWarning(1);
+                orderingEarlyWarningRemindsEntity.setModTime(new Date());
+
+                updateRemiderList.add(orderingEarlyWarningRemindsEntity);
+            }
+
+        }else{
+            Mall2OrderingEarlyWarningRemindsEntity orderingEarlyWarningRemindsEntity = mall2OrderingEarlyWarningRemindsDao.queryByGoodsId(goodsEntity.getId());
+            if( orderingEarlyWarningRemindsEntity != null){
+                orderingEarlyWarningRemindsEntity.setIsWarning(0);
+                orderingEarlyWarningRemindsEntity.setModTime(new Date());
+                updateRemiderList.add(orderingEarlyWarningRemindsEntity);
+            }
+        }
+    }
+
+    private void fixedValue(List<Mall2OrderingEarlyWarningRemindsEntity> insertRemiderList, List<Mall2OrderingEarlyWarningRemindsEntity> updateRemiderList, GoodsEntity goodsEntity, Integer totalNum, Integer reminderValue) {
+        if(totalNum <= reminderValue){
+            Mall2OrderingEarlyWarningRemindsEntity orderingEarlyWarningRemindsEntity = mall2OrderingEarlyWarningRemindsDao.queryByGoodsId(goodsEntity.getId());
+            if(orderingEarlyWarningRemindsEntity == null){
+                orderingEarlyWarningRemindsEntity = new Mall2OrderingEarlyWarningRemindsEntity();
+                orderingEarlyWarningRemindsEntity.setAverageSales(new BigDecimal(0));
+                orderingEarlyWarningRemindsEntity.setSku(goodsEntity.getGoodsSn());
+                orderingEarlyWarningRemindsEntity.setTotalNum(totalNum);
+                orderingEarlyWarningRemindsEntity.setGoodsId(goodsEntity.getId().intValue());
+                orderingEarlyWarningRemindsEntity.setGoodsName(goodsEntity.getName());
+                orderingEarlyWarningRemindsEntity.setAlarmType("00");
+                orderingEarlyWarningRemindsEntity.setAlarmTime(new Date());
+                orderingEarlyWarningRemindsEntity.setIsWarning(1);
+                orderingEarlyWarningRemindsEntity.setCreateTime(new Date());
+
+                insertRemiderList.add(orderingEarlyWarningRemindsEntity);
+            }else{
+                orderingEarlyWarningRemindsEntity.setAlarmTime(new Date());
+                orderingEarlyWarningRemindsEntity.setAverageSales(new BigDecimal(0));
+                orderingEarlyWarningRemindsEntity.setTotalNum(totalNum);
+                orderingEarlyWarningRemindsEntity.setIsWarning(1);
+                orderingEarlyWarningRemindsEntity.setModTime(new Date());
+
+                updateRemiderList.add(orderingEarlyWarningRemindsEntity);
+            }
+        }else{
+            Mall2OrderingEarlyWarningRemindsEntity orderingEarlyWarningRemindsEntity = mall2OrderingEarlyWarningRemindsDao.queryByGoodsId(goodsEntity.getId());
+            if( orderingEarlyWarningRemindsEntity != null){
+                orderingEarlyWarningRemindsEntity.setIsWarning(0);
+                orderingEarlyWarningRemindsEntity.setModTime(new Date());
+                updateRemiderList.add(orderingEarlyWarningRemindsEntity);
+            }
+        }
+    }
 }

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/alarm/Mall2ReminderRulesConfigServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.alarm;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.dao.alarm.Mall2ReminderRulesConfigDao;
+import com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity;
+import com.kmall.admin.service.alarm.Mall2ReminderRulesConfigService;
+
+/**
+ * 提醒规则配置表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-18 13:59:51
+ */
+@Service("mall2ReminderRulesConfigService")
+public class Mall2ReminderRulesConfigServiceImpl implements Mall2ReminderRulesConfigService {
+    @Autowired
+    private Mall2ReminderRulesConfigDao mall2ReminderRulesConfigDao;
+
+    @Override
+    public Mall2ReminderRulesConfigEntity queryObject(Integer mrrcId) {
+        return mall2ReminderRulesConfigDao.queryObject(mrrcId);
+    }
+
+    @Override
+    public List<Mall2ReminderRulesConfigEntity> queryList(Map<String, Object> map) {
+        return mall2ReminderRulesConfigDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return mall2ReminderRulesConfigDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(Mall2ReminderRulesConfigEntity mall2ReminderRulesConfig) {
+        return mall2ReminderRulesConfigDao.save(mall2ReminderRulesConfig);
+    }
+
+    @Override
+    public int update(Mall2ReminderRulesConfigEntity mall2ReminderRulesConfig) {
+        return mall2ReminderRulesConfigDao.update(mall2ReminderRulesConfig);
+    }
+
+    @Override
+    public int delete(Integer mrrcId) {
+        return mall2ReminderRulesConfigDao.delete(mrrcId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]mrrcIds) {
+        return mall2ReminderRulesConfigDao.deleteBatch(mrrcIds);
+    }
+}

+ 126 - 50
kmall-admin/src/main/java/com/kmall/admin/service/impl/alarm/Mall2ShippingReminderAlarmServiceImpl.java

@@ -3,9 +3,11 @@ package com.kmall.admin.service.impl.alarm;
 import com.kmall.admin.dao.MerchDao;
 import com.kmall.admin.dao.ProductStoreRelaDao;
 import com.kmall.admin.dao.StoreDao;
+import com.kmall.admin.dao.alarm.Mall2ReminderRulesConfigDao;
 import com.kmall.admin.entity.MerchEntity;
 import com.kmall.admin.entity.ProductStoreRelaEntity;
 import com.kmall.admin.entity.StoreEntity;
+import com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -29,6 +31,8 @@ import org.springframework.transaction.annotation.Transactional;
 public class Mall2ShippingReminderAlarmServiceImpl implements Mall2ShippingReminderAlarmService {
     @Autowired
     private Mall2ShippingReminderAlarmDao mall2ShippingReminderAlarmDao;
+    @Autowired
+    private Mall2ReminderRulesConfigDao mall2ReminderRulesConfigDao;
 
 
     @Autowired
@@ -87,6 +91,13 @@ public class Mall2ShippingReminderAlarmServiceImpl implements Mall2ShippingRemin
 
         // 遍历商户集合,查询商户下所有的门店
         for(MerchEntity merchEntity : merchEntities){
+
+            // 查询商户的出货预警规则,若无规则,则不继续进行
+            Mall2ReminderRulesConfigEntity rulesConfigEntity = mall2ReminderRulesConfigDao.queryByMerchSn(merchEntity.getMerchSn(),"0");
+            if(rulesConfigEntity == null){
+                continue;
+            }
+
             Map<String,Object> storeParam = new HashMap();
             storeParam.put("merchSn",merchEntity.getMerchSn());
             storeParam.put("isValid","0");
@@ -105,59 +116,26 @@ public class Mall2ShippingReminderAlarmServiceImpl implements Mall2ShippingRemin
             for(StoreEntity storeEntity : storeEntityList){
                 Long storeId = storeEntity.getId();
                 List<ProductStoreRelaEntity> productStoreRelaEntities = productStoreRelaDao.queryByStoreId(storeId);
-                // 遍历商品集合,计算商品的平均销量
+                // 遍历商品集合
                 for(ProductStoreRelaEntity productStoreRelaEntity : productStoreRelaEntities){
-                    // 商品id
-                    Long goodsId = productStoreRelaEntity.getGoodsId();
-                    // 该商品的销售量
-                    Integer sellVolume = productStoreRelaEntity.getSellVolume();
-                    // 获取当前时间
-                    Date date = new Date();
-                    // 获取该商品的创建时间
-                    Date createTime = productStoreRelaEntity.getCreateTime();
-                    // 相差的天数
-                    int days = (int) ((date.getTime() - createTime.getTime()) / (1000*3600*24));
-                    days = days == 0? 1 : days;
-                    // 一周平均销售量
-                    Integer avaerageSellVolume = new BigDecimal(sellVolume).divide(new BigDecimal(days),2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(7))
-                            .setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
-                    // 该商品的库存
-                    Integer stockNum = productStoreRelaEntity.getStockNum();
-                    if(stockNum <= avaerageSellVolume){
-                        Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarmEntity = mall2ShippingReminderAlarmDao.queryByGoodsIdAndStoreId(goodsId,storeId);
-                        if(mall2ShippingReminderAlarmEntity == null){
-                            mall2ShippingReminderAlarmEntity = new Mall2ShippingReminderAlarmEntity();
-                            mall2ShippingReminderAlarmEntity.setGoodsId(goodsId.intValue());
-                            mall2ShippingReminderAlarmEntity.setGoodsName(productStoreRelaEntity.getGoodsName());
-                            mall2ShippingReminderAlarmEntity.setAverageSales(new BigDecimal(avaerageSellVolume));
-                            mall2ShippingReminderAlarmEntity.setStoreId(storeId.intValue());
-                            mall2ShippingReminderAlarmEntity.setStoreName(storeEntity.getStoreName());
-                            mall2ShippingReminderAlarmEntity.setSku(productStoreRelaEntity.getSku());
-                            mall2ShippingReminderAlarmEntity.setStockNum(productStoreRelaEntity.getStockNum());
-                            mall2ShippingReminderAlarmEntity.setAlarmType("00");
-                            mall2ShippingReminderAlarmEntity.setAlarmTime(new Date());
-                            mall2ShippingReminderAlarmEntity.setIsWarning(1); // 1.为预警 0.为不预警
-                            mall2ShippingReminderAlarmEntity.setCreateTime(new Date());
-
-                            insertRemiderList.add(mall2ShippingReminderAlarmEntity);
-                        }else{
-                            mall2ShippingReminderAlarmEntity.setAverageSales(new BigDecimal(avaerageSellVolume));
-                            mall2ShippingReminderAlarmEntity.setStockNum(productStoreRelaEntity.getStockNum());
-                            mall2ShippingReminderAlarmEntity.setIsWarning(1);
-                            mall2ShippingReminderAlarmEntity.setAlarmTime(new Date());
-                            mall2ShippingReminderAlarmEntity.setModTime(new Date());
-
-                            updateRemiderList.add(mall2ShippingReminderAlarmEntity);
-                        }
-                    }else{
-                        Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarmEntity = mall2ShippingReminderAlarmDao.queryByGoodsIdAndStoreId(goodsId,storeId);
-                        if( mall2ShippingReminderAlarmEntity != null){
-                            mall2ShippingReminderAlarmEntity.setIsWarning(0);
-                            mall2ShippingReminderAlarmEntity.setModTime(new Date());
-                            updateRemiderList.add(mall2ShippingReminderAlarmEntity);
-                        }
+
+
+                    // 提醒类型 00.固定值  10.周期计算
+                    String reminderType = rulesConfigEntity.getReminderType();
+                    // 提醒值
+                    Integer reminderValue = rulesConfigEntity.getReminderValue();
+                    if("00".equalsIgnoreCase(reminderType)){
+                        // 固定值计算
+                        fixedValue(insertRemiderList, updateRemiderList, storeEntity, storeId, productStoreRelaEntity, reminderValue);
+
+                    }else if("10".equalsIgnoreCase(reminderType)){
+                        // 周期计算
+                        averageCalculation(insertRemiderList, updateRemiderList, storeEntity, storeId, productStoreRelaEntity, reminderValue);
                     }
 
+
+
+
                 }
             }
 
@@ -177,4 +155,102 @@ public class Mall2ShippingReminderAlarmServiceImpl implements Mall2ShippingRemin
 
 
     }
+
+    private void fixedValue(List<Mall2ShippingReminderAlarmEntity> insertRemiderList, List<Mall2ShippingReminderAlarmEntity> updateRemiderList, StoreEntity storeEntity, Long storeId, ProductStoreRelaEntity productStoreRelaEntity, Integer reminderValue) {
+        // 商品id
+        Long goodsId = productStoreRelaEntity.getGoodsId();
+        // 该商品的库存
+        Integer stockNum = productStoreRelaEntity.getStockNum();
+        if(stockNum <= reminderValue){
+            Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarmEntity = mall2ShippingReminderAlarmDao.queryByGoodsIdAndStoreId(goodsId,storeId);
+            if(mall2ShippingReminderAlarmEntity == null){
+                mall2ShippingReminderAlarmEntity = new Mall2ShippingReminderAlarmEntity();
+                mall2ShippingReminderAlarmEntity.setGoodsId(goodsId.intValue());
+                mall2ShippingReminderAlarmEntity.setGoodsName(productStoreRelaEntity.getGoodsName());
+                mall2ShippingReminderAlarmEntity.setAverageSales(new BigDecimal(0));
+                mall2ShippingReminderAlarmEntity.setStoreId(storeId.intValue());
+                mall2ShippingReminderAlarmEntity.setStoreName(storeEntity.getStoreName());
+                mall2ShippingReminderAlarmEntity.setSku(productStoreRelaEntity.getSku());
+                mall2ShippingReminderAlarmEntity.setStockNum(productStoreRelaEntity.getStockNum());
+                mall2ShippingReminderAlarmEntity.setAlarmType("00");
+                mall2ShippingReminderAlarmEntity.setAlarmTime(new Date());
+                mall2ShippingReminderAlarmEntity.setIsWarning(1); // 1.为预警 0.为不预警
+                mall2ShippingReminderAlarmEntity.setCreateTime(new Date());
+
+                insertRemiderList.add(mall2ShippingReminderAlarmEntity);
+            }else{
+                mall2ShippingReminderAlarmEntity.setAverageSales(new BigDecimal(0));
+                mall2ShippingReminderAlarmEntity.setStockNum(productStoreRelaEntity.getStockNum());
+                mall2ShippingReminderAlarmEntity.setIsWarning(1);
+                mall2ShippingReminderAlarmEntity.setAlarmTime(new Date());
+                mall2ShippingReminderAlarmEntity.setModTime(new Date());
+
+                updateRemiderList.add(mall2ShippingReminderAlarmEntity);
+            }
+        }else{
+            Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarmEntity = mall2ShippingReminderAlarmDao.queryByGoodsIdAndStoreId(goodsId,storeId);
+            if( mall2ShippingReminderAlarmEntity != null){
+                mall2ShippingReminderAlarmEntity.setIsWarning(0);
+                mall2ShippingReminderAlarmEntity.setModTime(new Date());
+                updateRemiderList.add(mall2ShippingReminderAlarmEntity);
+            }
+        }
+    }
+
+    private void averageCalculation(List<Mall2ShippingReminderAlarmEntity> insertRemiderList, List<Mall2ShippingReminderAlarmEntity> updateRemiderList, StoreEntity storeEntity, Long storeId, ProductStoreRelaEntity productStoreRelaEntity, Integer reminderValue) {
+        // 商品id
+        Long goodsId = productStoreRelaEntity.getGoodsId();
+        // 该商品的销售量
+        Integer sellVolume = productStoreRelaEntity.getSellVolume();
+        // 获取当前时间
+        Date date = new Date();
+        // 获取该商品的创建时间
+        Date createTime = productStoreRelaEntity.getCreateTime();
+        // 相差的天数
+        int days = (int) ((date.getTime() - createTime.getTime()) / (1000*3600*24));
+        days = days == 0? 1 : days;
+        // 平均销量
+        Integer avaerageSellVolume = new BigDecimal(sellVolume).divide(new BigDecimal(days),2, BigDecimal.ROUND_HALF_UP)
+                .setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
+
+        if(days >= reminderValue){
+            avaerageSellVolume = avaerageSellVolume * reminderValue;
+        }
+        // 该商品的库存
+        Integer stockNum = productStoreRelaEntity.getStockNum();
+        if(stockNum <= avaerageSellVolume){
+            Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarmEntity = mall2ShippingReminderAlarmDao.queryByGoodsIdAndStoreId(goodsId,storeId);
+            if(mall2ShippingReminderAlarmEntity == null){
+                mall2ShippingReminderAlarmEntity = new Mall2ShippingReminderAlarmEntity();
+                mall2ShippingReminderAlarmEntity.setGoodsId(goodsId.intValue());
+                mall2ShippingReminderAlarmEntity.setGoodsName(productStoreRelaEntity.getGoodsName());
+                mall2ShippingReminderAlarmEntity.setAverageSales(new BigDecimal(avaerageSellVolume));
+                mall2ShippingReminderAlarmEntity.setStoreId(storeId.intValue());
+                mall2ShippingReminderAlarmEntity.setStoreName(storeEntity.getStoreName());
+                mall2ShippingReminderAlarmEntity.setSku(productStoreRelaEntity.getSku());
+                mall2ShippingReminderAlarmEntity.setStockNum(productStoreRelaEntity.getStockNum());
+                mall2ShippingReminderAlarmEntity.setAlarmType("00");
+                mall2ShippingReminderAlarmEntity.setAlarmTime(new Date());
+                mall2ShippingReminderAlarmEntity.setIsWarning(1); // 1.为预警 0.为不预警
+                mall2ShippingReminderAlarmEntity.setCreateTime(new Date());
+
+                insertRemiderList.add(mall2ShippingReminderAlarmEntity);
+            }else{
+                mall2ShippingReminderAlarmEntity.setAverageSales(new BigDecimal(avaerageSellVolume));
+                mall2ShippingReminderAlarmEntity.setStockNum(productStoreRelaEntity.getStockNum());
+                mall2ShippingReminderAlarmEntity.setIsWarning(1);
+                mall2ShippingReminderAlarmEntity.setAlarmTime(new Date());
+                mall2ShippingReminderAlarmEntity.setModTime(new Date());
+
+                updateRemiderList.add(mall2ShippingReminderAlarmEntity);
+            }
+        }else{
+            Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarmEntity = mall2ShippingReminderAlarmDao.queryByGoodsIdAndStoreId(goodsId,storeId);
+            if( mall2ShippingReminderAlarmEntity != null){
+                mall2ShippingReminderAlarmEntity.setIsWarning(0);
+                mall2ShippingReminderAlarmEntity.setModTime(new Date());
+                updateRemiderList.add(mall2ShippingReminderAlarmEntity);
+            }
+        }
+    }
 }

+ 5 - 2
kmall-admin/src/main/resources/mybatis/mapper/GoodsBatchDao.xml

@@ -72,8 +72,11 @@
 			AND sku LIKE concat('%',#{sku},'%')
 		</if>
 	</select>
-	 
-	<insert id="save" parameterType="com.kmall.admin.entity.GoodsBatchEntity">
+    <select id="queryListBySku" resultType="com.kmall.admin.entity.GoodsBatchEntity">
+		select * from mall_goods_batch where sku=#{sku}
+	</select>
+
+    <insert id="save" parameterType="com.kmall.admin.entity.GoodsBatchEntity">
 		insert into mall_goods_batch(
 			`id`,
 			`batch_sn`,

+ 4 - 4
kmall-admin/src/main/resources/mybatis/mapper/GoodsTransportInfoDetailDao.xml

@@ -75,10 +75,10 @@
 	<select id="searchListByStatusAndSku" resultType="com.kmall.admin.entity.GoodsTransportInfoDetailEntity">
 		select * from mall_goods_transport_info_detail where 1=1
 		<if test="wayStatus!=null">
-			AND way_status=#{wayStatus}
+			AND way_status LIKE CONCAT('%',#{wayStatus},'%')
 		</if>
 		<if test="sku!=null and sku.trim() != ''">
-			AND sku=#{sku}
+			AND sku LIKE CONCAT('%',#{sku},'%')
 		</if>
 		<choose>
 			<when test="query.sidx != null and query.sidx.trim() != ''">
@@ -96,10 +96,10 @@
 		select count(*) from mall_goods_transport_info_detail
 		WHERE 1=1
 		<if test="wayStatus!=null">
-			AND way_status=#{wayStatus}
+			AND way_status LIKE CONCAT('%',#{wayStatus},'%')
 		</if>
 		<if test="sku!=null and sku.trim() != ''">
-			AND sku=#{sku}
+			AND sku LIKE CONCAT('%',#{sku},'%')
 		</if>
 	</select>
 

+ 1 - 1
kmall-admin/src/main/resources/mybatis/mapper/alarm/Mall2OrderingEarlyWarningRemindsDao.xml

@@ -170,7 +170,7 @@
 			#{item.moewrId},
 			#{item.goodsId},
 			#{item.goodsName},
-			#{ite.sku},
+			#{item.sku},
 			#{item.averageSales},
 			#{item.totalNum},
 			#{item.alarmType},

+ 148 - 0
kmall-admin/src/main/resources/mybatis/mapper/alarm/Mall2ReminderRulesConfigDao.xml

@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.admin.dao.alarm.Mall2ReminderRulesConfigDao">
+
+    <resultMap type="com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity" id="mall2ReminderRulesConfigMap">
+        <result property="mrrcId" column="mrrc_id"/>
+        <result property="merchSn" column="merch_sn"/>
+        <result property="thridMerchSn" column="thrid_merch_sn"/>
+        <result property="reminderCategory" column="reminder_category"/>
+        <result property="reminderType" column="reminder_type"/>
+        <result property="reminderValue" column="reminder_value"/>
+        <result property="createrSn" column="creater_sn"/>
+        <result property="createTime" column="create_time"/>
+        <result property="moderSn" column="moder_sn"/>
+        <result property="modTime" column="mod_time"/>
+        <result property="tstm" column="tstm"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity">
+		select
+			`mrrc_id`,
+			`merch_sn`,
+			`thrid_merch_sn`,
+			`reminder_category`,
+			`reminder_type`,
+			`reminder_value`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall2_reminder_rules_config
+		where mrrc_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity">
+		select
+    		config.mrrc_id,
+    		config.merch_sn,
+    		config.thrid_merch_sn,
+    		config.reminder_category,
+    		config.reminder_type,
+    		config.reminder_value,
+    		config.creater_sn,
+    		config.create_time,
+    		config.moder_sn,
+    		config.mod_time,
+    		config.tstm,
+    		merch.merch_name as merchName
+		from mall2_reminder_rules_config config
+		left join mall_merch merch on config.merch_sn = merch.merch_sn
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by mrrc_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall2_reminder_rules_config
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity" useGeneratedKeys="true" keyProperty="mrrcId">
+		insert into mall2_reminder_rules_config(
+			`merch_sn`,
+			`thrid_merch_sn`,
+			`reminder_category`,
+			`reminder_type`,
+			`reminder_value`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{merchSn},
+			#{thridMerchSn},
+			#{reminderCategory},
+			#{reminderType},
+			#{reminderValue},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity">
+		update mall2_reminder_rules_config
+		<set>
+			<if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
+			<if test="thridMerchSn != null">`thrid_merch_sn` = #{thridMerchSn}, </if>
+			<if test="reminderCategory != null">`reminder_category` = #{reminderCategory}, </if>
+			<if test="reminderType != null">`reminder_type` = #{reminderType}, </if>
+			<if test="reminderValue != null">`reminder_value` = #{reminderValue}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
+			<if test="createTime != null">`create_time` = #{createTime}, </if>
+			<if test="moderSn != null">`moder_sn` = #{moderSn}, </if>
+			<if test="modTime != null">`mod_time` = #{modTime}, </if>
+			<if test="tstm != null">`tstm` = #{tstm}</if>
+		</set>
+		where mrrc_id = #{mrrcId}
+	</update>
+
+	<delete id="delete">
+		delete from mall2_reminder_rules_config where mrrc_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mall2_reminder_rules_config where mrrc_id in
+		<foreach item="mrrcId" collection="array" open="(" separator="," close=")">
+			#{mrrcId}
+		</foreach>
+	</delete>
+
+	<select id="queryByMerchSn"  resultType="com.kmall.admin.entity.alarm.Mall2ReminderRulesConfigEntity">
+		select
+			`mrrc_id`,
+			`merch_sn`,
+			`thrid_merch_sn`,
+			`reminder_category`,
+			`reminder_type`,
+			`reminder_value`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall2_reminder_rules_config
+		where merch_sn = #{merchSn} and reminder_category = #{reminderCategory}
+	</select>
+
+</mapper>

+ 5 - 5
kmall-admin/src/main/resources/mybatis/mapper/mk/store/MkStoreTopicStatDao.xml

@@ -107,8 +107,8 @@
 		LEFT JOIN mk_store_prom_type pt ON p.prom_type_id = pt.prom_type_id
 		LEFT JOIN third_merchant_biz tb ON s.third_party_merch_code = tb.third_party_merch_code
 		WHERE 1=1
-		<if test="name != null and name.trim() != ''">
-			AND name LIKE concat('%',#{name},'%')
+		<if test="storeName != null and storeName.trim() != ''">
+			AND s.store_name LIKE concat('%',#{storeName},'%')
 		</if>
 		<if test="storeId != null and storeId != ''">
 			AND t.store_id = #{storeId}
@@ -139,9 +139,9 @@
 		LEFT JOIN mk_store_prom_type pt ON p.prom_type_id = pt.prom_type_id
 		LEFT JOIN third_merchant_biz tb ON s.third_party_merch_code = tb.third_party_merch_code
 		WHERE 1=1
-        <if test="name != null and name.trim() != ''">
-            AND name LIKE concat('%',#{name},'%')
-        </if>
+		<if test="storeName != null and storeName.trim() != ''">
+			AND s.store_name LIKE concat('%',#{storeName},'%')
+		</if>
 		<if test="storeId != null and storeId != ''">
 			AND t.store_id = #{storeId}
 		</if>

+ 60 - 0
kmall-admin/src/main/webapp/WEB-INF/page/alarm/mall2reminderrulesconfig.html

@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>提醒规则配置表</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <!--<div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>-->
+            <div class="buttons-group">
+                <!--<i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>-->
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                <!--<i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>-->
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="mall2ReminderRulesConfig" :rules="ruleValidate" :label-width="80">
+
+            <Form-item label="提醒类别" prop="reminderCategory" >
+                <i-select v-model="mall2ReminderRulesConfig.reminderCategory"  placeholder="提醒类别  0.出货提醒 1.订货提醒"
+                          label-in-value style="width: 268px;">
+                    <i-option v-for="remider in reminderCategorys" :value="remider.value" :key="remider.id">{{remider.name}}
+                    </i-option>
+                </i-select>
+            </Form-item>
+            <Form-item label="提醒类型" prop="reminderType" >
+                <i-select v-model="mall2ReminderRulesConfig.reminderType"  placeholder="提醒类型 00.固定值(数量)  10.周期计算(天)"
+                          label-in-value style="width: 268px;">
+                    <i-option v-for="remider in reminderTypes" :value="remider.value" :key="remider.id">{{remider.name}}
+                    </i-option>
+                </i-select>
+            </Form-item>
+            <Form-item label="提醒值" prop="reminderValue" style="width: 268px;">
+                <Input-number :min="0" :step="1" v-model="mall2ReminderRulesConfig.reminderValue"  placeholder="提醒值 (数量或天)"/>
+            </Form-item>
+            <Form-item>
+                <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/alarm/mall2reminderrulesconfig.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 4 - 3
kmall-admin/src/main/webapp/WEB-INF/page/sale/goodsPanorama.html

@@ -61,7 +61,7 @@
 </head>
 <body>
 <div id="rrapp" v-cloak>
-    <div v-show="!showList">
+    <div v-show="showList">
         <Row :gutter="16">
 
             <div class="buttons-group" style="width: 100%;margin-top: 8px; padding-left: 10px;">
@@ -80,7 +80,7 @@
 
     </div>
 
-    <Card v-show="showList">
+    <Card v-show="!showList">
         <div class="search-group">
             <i-col span="3">
                 <i-input v-model="q.goodsSn" @on-enter="query" placeholder="商品编码"/>
@@ -97,6 +97,7 @@
             </i-col>
             <i-button @click="query">查询</i-button>
             <i-button @click="reloadSearch">重置</i-button>
+            <i-button type="warning" @click="returnBack" style="margin-left: 8px"/>返回</i-button>
         </div>
 <!--        <p slot="title">{{title}}</p>-->
 
@@ -227,7 +228,7 @@
         </i-form>
         <div style="padding-left: 20px">
             <!--<i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>-->
-<!--            <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>-->
+
             <!--<i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>-->
         </div>
     </Card>

+ 1 - 1
kmall-admin/src/main/webapp/WEB-INF/page/statis/mkstoretopicstat.html

@@ -10,7 +10,7 @@
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
-                    <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
+                    <i-input v-model="q.storeName" @on-enter="query" placeholder="门店名称"/>
                 </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>

+ 1 - 1
kmall-admin/src/main/webapp/js/alarm/mall2orderingearlywarningreminds.js

@@ -21,7 +21,7 @@ $(function () {
         rownumbers: true,
         rownumWidth: 25,
         autowidth: true,
-        multiselect: true,
+        // multiselect: true,
         pager: "#jqGridPager",
         jsonReader: {
             root: "page.list",

+ 192 - 0
kmall-admin/src/main/webapp/js/alarm/mall2reminderrulesconfig.js

@@ -0,0 +1,192 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../mall2reminderrulesconfig/list',
+        datatype: "json",
+        colModel: [
+			{label: 'mrrcId', name: 'mrrcId', index: 'mrrc_id', key: true, hidden: true},
+			{label: '商户编号', name: 'merchSn', index: 'merch_sn', align:'center', width: 80},
+			{label: '商户名称', name: 'merchName', index: 'merchName', align:'center', width: 80},
+			{label: '提醒类别', name: 'reminderCategory', index: 'reminder_category',align:'center', width: 80,formatter:function(value){
+				if(value === '0'){
+					return '出货提醒';
+				}else if(value === '1'){
+					return '订货提醒';
+				}else{
+					return '-';
+				}
+				}},
+			{label: '提醒类型', name: 'reminderType', index: 'reminder_type',align:'center', width: 80,formatter:function(value){
+				if(value === '00'){
+					return '固定值';
+				}else if(value === '10'){
+					return '周期计算'
+				}else {
+					return '-';
+				}
+			}},
+			{label: '提醒值', name: 'reminderValue', index: 'reminder_value',align:'center', width: 80}],
+		viewrecords: true,
+        height: 550,
+        rowNum: 10,
+        rowList: [10, 30, 50],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        multiselect: true,
+        pager: "#jqGridPager",
+        jsonReader: {
+            root: "page.list",
+            page: "page.currPage",
+            total: "page.totalPage",
+            records: "page.totalCount"
+        },
+        prmNames: {
+            page: "page",
+            rows: "limit",
+            order: "order"
+        },
+		beforeSelectRow: function(rowid, e){
+			jQuery("#jqGrid").jqGrid('resetSelection');
+			return(true);
+		},
+        gridComplete: function () {
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+        }
+    });
+	var myGrid = $("#jqGrid");
+	$("#cb_"+myGrid[0].id).hide();
+});
+
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
+        showList: true,
+        title: null,
+		mall2ReminderRulesConfig: {},
+		reminderCategorys:[],
+		reminderTypes:[],
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.mall2ReminderRulesConfig = {};
+		},
+		update: function (event) {
+            let mrrcId = getSelectedRow();
+			if (mrrcId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(mrrcId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.mall2ReminderRulesConfig.mrrcId == null ? "../mall2reminderrulesconfig/save" : "../mall2reminderrulesconfig/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.mall2ReminderRulesConfig),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let mrrcIds = getSelectedRows();
+			if (mrrcIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../mall2reminderrulesconfig/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(mrrcIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(mrrcId){
+			$.get("../mall2reminderrulesconfig/info/"+mrrcId, function (r) {
+                vm.mall2ReminderRulesConfig = r.mall2ReminderRulesConfig;
+            });
+		},
+        reloadSearch: function() {
+            vm.q = {
+                name: ''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'name': vm.q.name},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+
+			console.log(vm.mall2ReminderRulesConfig);
+			if(!vm.mall2ReminderRulesConfig.reminderCategory || vm.mall2ReminderRulesConfig.reminderCategory == ''){
+				alert("请选择提醒类别");
+				return ;
+			}
+			if(!vm.mall2ReminderRulesConfig.reminderType || vm.mall2ReminderRulesConfig.reminderType == ''){
+				alert("请选择提醒类型");
+				return ;
+			}
+			if(!vm.mall2ReminderRulesConfig.reminderValue || vm.mall2ReminderRulesConfig.reminderValue == ''){
+				alert("请选择提醒值");
+				return ;
+			}
+			if(vm.mall2ReminderRulesConfig.reminderType === '10' && vm.mall2ReminderRulesConfig.reminderValue > '365'){
+				alert("天数不能超过365");
+				return ;
+			}
+			vm.saveOrUpdate()
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	},
+	mounted() {
+		$.get("../sys/macro/queryMacrosByValue?value=reminderCategory", function (r) {
+			vm.reminderCategorys = r.list;
+
+		});
+		$.get("../sys/macro/queryMacrosByValue?value=reminderType", function (r) {
+			vm.reminderTypes = r.list;
+		});
+	}
+});

+ 8 - 2
kmall-admin/src/main/webapp/js/alarm/mall2shippingreminderalarm.js

@@ -9,7 +9,13 @@ $(function () {
 			{label: '门店名称', name: 'storeName', index: 'store_name',align:"center", width: 80},
 			{label: '商品名称', name: 'goodsName', index: 'goods_name',align:"center", width: 100},
 			{label: '剩余库存数', name: 'stockNum', index: 'stock_num',align:"center", width: 80},
-			{label: '平均销量', name: 'averageSales', index: 'average_sales',align:"center", width: 80},
+			{label: '平均销量', name: 'averageSales', index: 'average_sales',align:"center", width: 80,formatter:function(value){
+				if(value === '0'){
+					return '-';
+				}
+				return value;
+
+				}},
 			{
 				label: '预警时间', name: 'alarmTime', index: 'alarm_time',align:"center", width: 80, formatter: function (value) {
 					return transDate(value, 'yyyy-MM-dd hh:mm:ss');
@@ -23,7 +29,7 @@ $(function () {
         rownumbers: true,
         rownumWidth: 25,
         autowidth: true,
-        multiselect: true,
+        // multiselect: true,
         pager: "#jqGridPager",
         jsonReader: {
             root: "page.list",

+ 6 - 0
kmall-admin/src/main/webapp/js/cashier/cashierManager.js

@@ -34,10 +34,16 @@ $(function () {
             rows: "limit",
             order: "order"
         },
+        beforeSelectRow: function(rowid, e){
+            jQuery("#jqGrid").jqGrid('resetSelection');
+            return(true);
+        },
         gridComplete: function () {
             $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
         }
     });
+    var myGrid = $("#jqGrid");
+    $("#cb_"+myGrid[0].id).hide();
 });
 
 let vm = new Vue({

+ 6 - 0
kmall-admin/src/main/webapp/js/mk/mk2memberbirthday.js

@@ -54,10 +54,16 @@ $(function () {
             rows: "limit",
             order: "order"
         },
+        beforeSelectRow: function(rowid, e){
+            jQuery("#jqGrid").jqGrid('resetSelection');
+            return(true);
+        },
         gridComplete: function () {
             $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
         }
     });
+    var myGrid = $("#jqGrid");
+    $("#cb_"+myGrid[0].id).hide();
 });
 
 let vm = new Vue({

+ 30 - 12
kmall-admin/src/main/webapp/js/sale/goodsPanorama.js

@@ -89,10 +89,16 @@ $(function () {
             rows: "limit",
             order: "order"
         },
+        beforeSelectRow: function(rowid, e){
+            jQuery("#jqGrid").jqGrid('resetSelection');
+            return(true);
+        },
         gridComplete: function () {
             $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
         }
     });
+    var myGrid = $("#jqGrid");
+    $("#cb_"+myGrid[0].id).hide();
     $('#goodsDesc').editable({
         inlineMode: false,
         alwaysBlank: true,
@@ -418,13 +424,8 @@ var vm = new Vue({
             vm.showList = false;
             vm.title = "修改";
             vm.uploadList = [];
-            // vm.goods = {primaryPicUrl: '', listPicUrl: '',videoUrl:'', categoryId: '', isOnSale: 1, isAppExclusive: 0, isLimited: 0,
-            //     isHot: 0, categoryName: '', retailPrice: '', marketPrice: '', goodsRate: '', sortOrder: '',goodsNumber: '' };
-            vm.getInfo(id);/*
-            var opt = {};
-            opt.value = vm.goods.categoryId;
-            opt.flag = 1;
-            vm.getAttributes(opt);*/
+            console.log(id);
+            vm.getInfo2(id);
 
             vm.thirdMerchantBizList = [];
             vm.getCusUnitCodeList();
@@ -433,11 +434,23 @@ var vm = new Vue({
             if (vm.goods.goodsBizType == '10' || vm.goods.goodsBizType == '02') {
                 vm.showInput = false;
             }
-
             vm.price();
             vm.discount();
             vm.detail();
 
+
+        },
+        getInfo2: function (id) {
+            console.log(111);
+            $.get("../goods/info/" + id, function (r) {
+                vm.goods = r.goods;
+                vm.goodsBizType = r.goods.goodsBizType;
+
+                vm.q.goodsSn = r.goods.goodsSn;
+                vm.branch();
+                vm.barcode();
+                vm.sales();
+            });
         },
         getInfo: function () {
             var postData = {"goodsSn":vm.q.goodsSn,'prodBarcode':vm.q.prodBarcode,'storeId':vm.q.storeId};
@@ -448,14 +461,16 @@ var vm = new Vue({
                 vm.goods = r.goods;
                 console.log(r.goods);
                 // vm.goodsBizType = r.goods.goodsBizType;
+                vm.q.goodsSn = r.goods.goodsSn;
+                vm.branch();
+                vm.barcode();
+                vm.sales();
             });
             // $.get("../goods/info/" + id, function (r) {
             //     vm.goods = r.goods;
             //     vm.goodsBizType = r.goods.goodsBizType;
             //
-            //     // vm.branch(r.goods.goodsSn);
-            //     // vm.barcode(r.goods.goodsSn);
-            //     // vm.sales(r.goods.goodsSn);
+
             // });
         },
         branch:function(){
@@ -658,7 +673,7 @@ var vm = new Vue({
             vm.branch();
             vm.barcode();
             vm.getInfo();
-            vm.showList = true;
+            // vm.showList = true;
             // let page = event;
             // if (event != 1) {
             //     page = $("#jqGrid").jqGrid('getGridParam', 'page');
@@ -677,6 +692,9 @@ var vm = new Vue({
             // }).trigger("reloadGrid");
             // vm.handleReset('formValidate');
         },
+        returnBack:function(){
+            vm.showList = true;
+        },
         getCategory: function () {
             //加载分类树
             $.get("../category/query", function (r) {

+ 7 - 1
kmall-admin/src/main/webapp/js/shop/cart.js

@@ -46,10 +46,16 @@ $(function () {
             rows: "limit",
             order: "order"
         },
+        beforeSelectRow: function(rowid, e){
+            jQuery("#jqGrid").jqGrid('resetSelection');
+            return(true);
+        },
         gridComplete: function () {
             $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
         }
     });
+    var myGrid = $("#jqGrid");
+    $("#cb_"+myGrid[0].id).hide();
 });
 
 var vm = new Vue({
@@ -137,4 +143,4 @@ var vm = new Vue({
             }).trigger("reloadGrid");
         }
     }
-});
+});

+ 7 - 1
kmall-admin/src/main/webapp/js/shop/collect.js

@@ -33,10 +33,16 @@ $(function () {
             rows: "limit",
             order: "order"
         },
+        beforeSelectRow: function(rowid, e){
+            jQuery("#jqGrid").jqGrid('resetSelection');
+            return(true);
+        },
         gridComplete: function () {
             $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
         }
     });
+    var myGrid = $("#jqGrid");
+    $("#cb_"+myGrid[0].id).hide();
 });
 
 var vm = new Vue({
@@ -124,4 +130,4 @@ var vm = new Vue({
             }).trigger("reloadGrid");
         }
     }
-});
+});

+ 7 - 1
kmall-admin/src/main/webapp/js/shop/footprint.js

@@ -30,10 +30,16 @@ $(function () {
             rows: "limit",
             order: "order"
         },
+        beforeSelectRow: function(rowid, e){
+            jQuery("#jqGrid").jqGrid('resetSelection');
+            return(true);
+        },
         gridComplete: function () {
             $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
         }
     });
+    var myGrid = $("#jqGrid");
+    $("#cb_"+myGrid[0].id).hide();
 });
 
 var vm = new Vue({
@@ -121,4 +127,4 @@ var vm = new Vue({
             }).trigger("reloadGrid");
         }
     }
-});
+});

+ 12 - 6
kmall-admin/src/main/webapp/js/shop/searchhistory.js

@@ -2,7 +2,7 @@ $(function () {
     $("#jqGrid").jqGrid({
         url: '../searchhistory/list',
         datatype: "json",
-        colModel: [			
+        colModel: [
 			{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
 			{label: '关键字', name: 'keyword', index: 'keyword', width: 500 },
 			// {label: '搜索来源', name: 'from', index: 'from', width: 80 },
@@ -12,8 +12,8 @@ $(function () {
         height: 550,
         rowNum: 10,
         rowList: [10, 30, 50],
-        rownumbers: true, 
-        rownumWidth: 25, 
+        rownumbers: true,
+        rownumWidth: 25,
         autowidth:true,
         shrinkToFit: false,
         autoScroll: true,   //开启水平滚动条
@@ -31,10 +31,16 @@ $(function () {
             rows: "limit",
             order: "order"
         },
+		beforeSelectRow: function(rowid, e){
+			jQuery("#jqGrid").jqGrid('resetSelection');
+			return(true);
+		},
         gridComplete: function () {
             $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
         }
     });
+	var myGrid = $("#jqGrid");
+	$("#cb_"+myGrid[0].id).hide();
 });
 
 var vm = new Vue({
@@ -63,7 +69,7 @@ var vm = new Vue({
 			}
 			vm.showList = false;
             vm.title = "修改";
-            
+
             vm.getInfo(id)
 		},
 		saveOrUpdate: function (event) {
@@ -89,7 +95,7 @@ var vm = new Vue({
 			if(ids == null){
 				return ;
 			}
-			
+
 			confirm('确定要删除选中的记录?', function(){
 				$.ajax({
 					type: "POST",
@@ -122,4 +128,4 @@ var vm = new Vue({
             }).trigger("reloadGrid");
         }
 	}
-});
+});

+ 5 - 0
kmall-admin/src/main/webapp/js/shop/storeProductStock.js

@@ -590,6 +590,11 @@ var vm = new Vue({
                 vm.storesList = r.list;
             });
         },
+        getGoodsBatchList: function(sku){
+            $.get("../goodsbatch/goodsBatchList?sku="+sku,function (r) {
+
+            });
+        },
         addAttrRow: function () {
             let goodsId = '';
             if (vm.goods) {

+ 8 - 1
kmall-admin/src/main/webapp/js/shop/userlevel.js

@@ -26,11 +26,18 @@ $(function () {
             rows: "limit",
             order: "order"
         },
+        beforeSelectRow: function(rowid, e){
+            jQuery("#jqGrid").jqGrid('resetSelection');
+            return(true);
+        },
         gridComplete: function () {
             //隐藏grid底部滚动条
             $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
         }
     });
+    var myGrid = $("#jqGrid");
+    $("#cb_"+myGrid[0].id).hide();
+
 });
 
 var vm = new Vue({
@@ -135,4 +142,4 @@ var vm = new Vue({
             handleResetForm(this, name);
         }
     }
-});
+});

+ 3 - 3
kmall-admin/src/main/webapp/js/statis/mkstoretopicstat.js

@@ -266,7 +266,7 @@ let vm = new Vue({
 			]
 		},
 		q: {
-		    name: ''
+            storeName: ''
 		},
         o:{
             orderStatus:''
@@ -394,7 +394,7 @@ let vm = new Vue({
 		},
         reloadSearch: function() {
             vm.q = {
-                name: ''
+                storeName: ''
             }
             vm.reload();
 		},
@@ -405,7 +405,7 @@ let vm = new Vue({
             vm.showViewList = false;
             let page = $("#jqGrid").jqGrid('getGridParam', 'page');
 			$("#jqGrid").jqGrid('setGridParam', {
-                postData: {'name': vm.q.name},
+                postData: {'storeName': vm.q.storeName},
                 page: page
             }).trigger("reloadGrid");
             vm.handleReset('formValidate');