From 067302e7ddd0bc605ee5664d11eb90f7ec06895f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 12 Apr 2021 14:44:00 +0800
Subject: [PATCH] 20210412  签到活动后台

---
 zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopDeliveryInfoDao.xml                   |    2 
 zq-erp/src/main/java/com/matrix/system/activity/vo/LogisticsVo.java                        |   18 ++
 zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java   |   94 +++++++++++++
 zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java           |    2 
 zq-erp/src/main/resources/config/db/increment/签到活动.sql                                     |   16 ++
 zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html |   93 +++++++++---
 zq-erp/src/main/java/com/matrix/system/activity/action/ActivitySignWriteoffAction.java     |   15 +
 zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignWriteoff.java           |    4 
 zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignReceiveRecord.java      |   13 +
 zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffListDto.java               |    6 
 zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopDeliveryInfo.java                  |    9 +
 zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff.html       |    7 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java  |   26 +++
 zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffVo.java                     |   25 +++
 zq-erp/src/main/java/com/matrix/system/activity/dto/LogisticsSubmitDto.java                |   28 ++++
 zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml              |   11 +
 16 files changed, 327 insertions(+), 42 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/activity/action/ActivitySignWriteoffAction.java b/zq-erp/src/main/java/com/matrix/system/activity/action/ActivitySignWriteoffAction.java
index b125fe2..7d5db67 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/action/ActivitySignWriteoffAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/action/ActivitySignWriteoffAction.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
+import com.matrix.system.activity.dto.LogisticsSubmitDto;
 import com.matrix.system.activity.dto.SignWriteoffDto;
 import com.matrix.system.activity.dto.SignWriteoffListDto;
 import com.matrix.system.activity.dto.WriteoffCodeSubmitDto;
@@ -51,9 +52,9 @@
 	}
 	
 	/**
-     *进入核销
+     *中奖信息
      */
-    @ApiOperation(value = "进入核销")
+    @ApiOperation(value = "中奖信息")
     @PostMapping(value = "/findSignWriteoff")
     public @ResponseBody
     AjaxResult findSignWriteoff(@RequestBody SignWriteoffDto signWriteoffDto) {
@@ -70,5 +71,15 @@
     	return activitySignWriteoffService.writeoffCodeSubmit(writeoffCodeSubmitDto);
     }
 
+	/**
+	 *物流发货
+	 */
+	@ApiOperation(value = "物流发货")
+	@PostMapping(value = "/logisticsSubmit")
+	public @ResponseBody
+	AjaxResult logisticsSubmit(@RequestBody LogisticsSubmitDto logisticsSubmitDto) {
+		return activitySignWriteoffService.logisticsSubmit(logisticsSubmitDto);
+	}
+
   
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java b/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java
index 5613f42..660ab82 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java
@@ -1,6 +1,7 @@
 package com.matrix.system.activity.dao;
 
 
+import com.matrix.system.shopXcx.bean.ShopDeliveryInfo;
 import org.apache.ibatis.annotations.Param;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -23,4 +24,5 @@
 
 	ZjrVo selectUsernameByUserId(@Param("userId")Long userId, @Param("receiveId")Long receiveId);
 
+    ShopDeliveryInfo selectShopDeliveryInfoByLogisticsId(@Param("logisticsId")Integer logisticsId);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/dto/LogisticsSubmitDto.java b/zq-erp/src/main/java/com/matrix/system/activity/dto/LogisticsSubmitDto.java
new file mode 100644
index 0000000..47d3db1
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/dto/LogisticsSubmitDto.java
@@ -0,0 +1,28 @@
+package com.matrix.system.activity.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "LogisticsSubmitDto", description = "查询参数")
+public class LogisticsSubmitDto {
+	
+	@ApiModelProperty(value ="核销ID")
+	private long writeoffId;
+	
+	@ApiModelProperty(value ="收货人")
+	private String shr;
+	@ApiModelProperty(value ="联系电话")
+	private String lxdh;
+	@ApiModelProperty(value ="收货地址")
+	private String shdz;
+	@ApiModelProperty(value ="快递公司Code")
+	private String kdgs;
+	@ApiModelProperty(value ="快递单号")
+	private String kddh;
+	
+	@ApiModelProperty(hidden = true)
+	private Long companyId;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffListDto.java b/zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffListDto.java
index 5acbdc0..43b04b2 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffListDto.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffListDto.java
@@ -1,9 +1,6 @@
 package com.matrix.system.activity.dto;
 
-import java.util.Date;
-
 import com.matrix.core.pojo.BasePageQueryDto;
-
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -14,6 +11,9 @@
 	
 	@ApiModelProperty(value ="中奖者姓名")
 	private String zjzxm;
+
+	@ApiModelProperty(value ="活动名称/编码")
+	private String hdmcbm;
 	
 	@ApiModelProperty(hidden = true)
 	private Long companyId;
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignReceiveRecord.java b/zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignReceiveRecord.java
index 4782536..f59cb27 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignReceiveRecord.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignReceiveRecord.java
@@ -81,6 +81,19 @@
 
 	private Long  companyId;
 
+	/**
+	 * 收货人
+	 */
+	private String  consignee;
+	/**
+	 * 联系电话
+	 */
+	private String  consigneePhone;
+	/**
+	 * 收货地址
+	 */
+	private String  consigneeAddress;
+
 
 
   
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignWriteoff.java b/zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignWriteoff.java
index 7ab47e4..febff5f 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignWriteoff.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignWriteoff.java
@@ -85,7 +85,7 @@
 	 */
 
 
-	private Long  logisticsId;
+	private Integer  logisticsId;
 	
 	/**
 	 * 中奖记录ID
@@ -114,8 +114,6 @@
 
 
 	private Long  writeoffUserid;
-
-
 
   
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
index c8478a8..ed65769 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
@@ -1,5 +1,6 @@
 package com.matrix.system.activity.service;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -10,25 +11,36 @@
 import com.matrix.system.activity.dao.ActivitySignAwardSetDao;
 import com.matrix.system.activity.dao.ActivitySignReceiveRecordDao;
 import com.matrix.system.activity.dao.ActivitySignWriteoffDao;
+import com.matrix.system.activity.dto.LogisticsSubmitDto;
 import com.matrix.system.activity.dto.SignWriteoffDto;
 import com.matrix.system.activity.dto.SignWriteoffListDto;
 import com.matrix.system.activity.dto.WriteoffCodeSubmitDto;
 import com.matrix.system.activity.entity.ActivitySignAwardSet;
 import com.matrix.system.activity.entity.ActivitySignReceiveRecord;
 import com.matrix.system.activity.entity.ActivitySignWriteoff;
+import com.matrix.system.activity.vo.LogisticsVo;
 import com.matrix.system.activity.vo.SignWriteoffListVo;
 import com.matrix.system.activity.vo.SignWriteoffVo;
 import com.matrix.system.activity.vo.ZjrVo;
 import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.bean.SystemDictionary;
+import com.matrix.system.common.dao.SystemDictionaryDao;
 import com.matrix.system.hive.action.util.QueryUtil;
 import com.matrix.system.hive.dao.SysVipInfoDao;
 import com.matrix.system.shopXcx.bean.ShopActivities;
+import com.matrix.system.shopXcx.bean.ShopDeliveryInfo;
+import com.matrix.system.shopXcx.bean.ShopLogisticsInfo;
 import com.matrix.system.shopXcx.dao.ShopActivitiesDao;
+import com.matrix.system.shopXcx.dao.ShopDeliveryInfoDao;
+import com.matrix.system.shopXcx.dao.ShopLogisticsInfoDao;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @description 核销记录
@@ -48,6 +60,12 @@
 	ActivitySignReceiveRecordDao activitySignReceiveRecordDao;
 	@Autowired
 	SysVipInfoDao sysVipInfoDao;
+	@Autowired
+	SystemDictionaryDao systemDictionaryDao;
+	@Autowired
+	ShopDeliveryInfoDao shopDeliveryInfoDao;
+	@Autowired
+	ShopLogisticsInfoDao shopLogisticsInfoDao;
 
 	public IPage<SignWriteoffListVo> findSignWriteoffList(Page<SignWriteoffListVo> page,
 			SignWriteoffListDto signWriteoffListDto) {
@@ -79,6 +97,33 @@
         	ShopActivities shopActivities = shopActivitiesDao.selectById(activitySignWriteoff.getActId());
         	signWriteoffVo.setHdmc(shopActivities.getActName());
         	signWriteoffVo.setHdbh(shopActivities.getActCode());
+        	//获取收货地址信息
+        	int awardWay = activitySignAwardSet.getAwardWay();
+        	if(ActivitySignAwardSet.AWARDWAY_TWO == awardWay) {
+        		ActivitySignWriteoff activitySignWriteoffLogistics = activitySignWriteoffDao.selectById(writeoffId);
+        		Long receiveId = activitySignWriteoffLogistics.getReceiveId();
+        		ActivitySignReceiveRecord activitySignReceiveRecordLogistic = activitySignReceiveRecordDao.selectById(receiveId);
+        		signWriteoffVo.setConsignee(activitySignReceiveRecordLogistic.getConsignee());
+        		signWriteoffVo.setConsigneePhone(activitySignReceiveRecordLogistic.getConsigneePhone());
+        		signWriteoffVo.setConsigneeAddress(activitySignReceiveRecordLogistic.getConsigneeAddress());
+        		
+        		//物流跟踪
+        		Integer logisticsId = activitySignWriteoffLogistics.getLogisticsId();
+        		if(ObjectUtil.isNotEmpty(logisticsId)) {
+        			List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(logisticsId);
+        			if(CollUtil.isNotEmpty(shopLogisticsInfos)) {
+        				ArrayList<LogisticsVo> logisticsVos = new ArrayList<>();
+        				for(ShopLogisticsInfo shopLogistics : shopLogisticsInfos) {
+        					LogisticsVo logisticsVo = new LogisticsVo();
+        					logisticsVo.setContent(shopLogistics.getDescribe());
+        					logisticsVo.setTimestamp(shopLogistics.getLogisticsTime());
+        					logisticsVos.add(logisticsVo);
+        				}
+        				signWriteoffVo.setActivities(logisticsVos);
+        			}
+        		}
+        		
+        	}
         }
         result.putInMap("signWriteoffVo", signWriteoffVo);
         return result;
@@ -118,6 +163,55 @@
         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "核销成功");
 	}
 
+	@Transactional
+	public AjaxResult logisticsSubmit(LogisticsSubmitDto logisticsSubmitDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(logisticsSubmitDto);
+        SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
+        Long writeoffId = logisticsSubmitDto.getWriteoffId();
+        /**
+         * 更新领取记录表的收货信息和状态
+         * 更新核销记录表的状态和物流ID
+         */
+        ActivitySignWriteoff activitySignWriteoff = activitySignWriteoffDao.selectById(writeoffId);
+        //新增一条物流信息
+        ShopDeliveryInfo shopDeliveryInfo = new ShopDeliveryInfo();
+        Long receiveId = activitySignWriteoff.getReceiveId();
+        SystemDictionary systemDictionary = systemDictionaryDao.selectByCode(logisticsSubmitDto.getKdgs());
+        if (ObjectUtil.isEmpty(systemDictionary)) {
+            return new AjaxResult(AjaxResult.STATUS_FAIL, "没有找到物流公司信息!");
+        }
+        shopDeliveryInfo.setUserId(activitySignWriteoff.getUserId());
+        shopDeliveryInfo.setReceiveId(receiveId);
+        shopDeliveryInfo.setReceiveAddress(logisticsSubmitDto.getShdz());
+
+        shopDeliveryInfo.setLogisticsCompany(systemDictionary.getName());
+        shopDeliveryInfo.setLogisticsCompanyCode(systemDictionary.getCode());
+        shopDeliveryInfo.setDeliveryWay("物流配送");
+
+        shopDeliveryInfo.setWaybillNo(logisticsSubmitDto.getKddh());
+        shopDeliveryInfo.setUpdateBy(sysUsers.getSuName());
+        shopDeliveryInfo.setCreateBy(sysUsers.getSuName());
+
+        shopDeliveryInfo.setDeliveryTime(new Date());
+        shopDeliveryInfoDao.insert(shopDeliveryInfo);
+        //更新核销记录
+        activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE);
+        activitySignWriteoff.setWriteoffTime(new Date());
+        activitySignWriteoff.setWriteoffUser(sysUsers.getSuName());
+        activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId());
+        activitySignWriteoff.setLogisticsId(shopDeliveryInfo.getId());
+        activitySignWriteoffDao.updateById(activitySignWriteoff);
+        //更新领取记录
+        ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId);
+        activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
+        activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr());
+        activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz());
+        activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh());
+        activitySignReceiveRecordDao.updateById(activitySignReceiveRecord);
+        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "发货成功");
+	}
+
 
 
 
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/vo/LogisticsVo.java b/zq-erp/src/main/java/com/matrix/system/activity/vo/LogisticsVo.java
new file mode 100644
index 0000000..6e97798
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/vo/LogisticsVo.java
@@ -0,0 +1,18 @@
+package com.matrix.system.activity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class LogisticsVo {
+	
+	@ApiModelProperty(value ="内容")
+	private String  content;
+	
+	@ApiModelProperty(value ="时间戳")
+	@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8")
+	private String  timestamp;
+	
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffVo.java b/zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffVo.java
index e915998..af7d6a6 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffVo.java
@@ -1,11 +1,11 @@
 package com.matrix.system.activity.vo;
 
-import java.util.Date;
-
 import com.fasterxml.jackson.annotation.JsonFormat;
-
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
 
 @Data
 public class SignWriteoffVo {
@@ -39,7 +39,24 @@
 	private int  state;
 	
 	@ApiModelProperty(value ="兑奖时间")
-	@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8")
+	@JsonFormat(pattern = "yyyy-MM-dd hh:mm", timezone="GMT+8")
 	private Date  djsj;
+	
+	@ApiModelProperty(value ="收货人")
+	private String  consignee;
+	
+	@ApiModelProperty(value ="联系电话")
+	private String  consigneePhone;
+	
+	@ApiModelProperty(value ="收货地址")
+	private String  consigneeAddress;
+	
+	@ApiModelProperty(value ="物流单号")
+	private String  logisticsNum;
+	
+	@ApiModelProperty(value ="物流公司")
+	private String  logisticsCompany;
+	
+	private List<LogisticsVo>  activities;
 
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
index 8b2e985..a18c5e2 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
@@ -18,10 +18,7 @@
 import com.matrix.system.activity.entity.ActivitySignWriteoff;
 import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.shopXcx.api.dto.ClickSignDTO;
-import com.matrix.system.shopXcx.api.vo.ActivitySignAwardSetVo;
-import com.matrix.system.shopXcx.api.vo.SignBasicInfoJsonVo;
-import com.matrix.system.shopXcx.api.vo.SignBasicInfoVo;
-import com.matrix.system.shopXcx.api.vo.SignSuccessVo;
+import com.matrix.system.shopXcx.api.vo.*;
 import com.matrix.system.shopXcx.bean.ShopActivities;
 import com.matrix.system.shopXcx.dao.ShopActivitiesDao;
 import io.swagger.annotations.Api;
@@ -32,7 +29,6 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
@@ -316,6 +312,26 @@
         return getCumulativeDay(actId,userId,offsetDay,i);
     }
     
+//    /**
+//     * 获取累计的签到奖品数量
+//     *
+//     * @return
+//     */
+//    @ApiOperation(value = "获取累计的签到奖品列表", notes = "")
+//	@ApiResponses({
+//			@ApiResponse(code = 200, message = "ok", response = SignAwardListVO.class)
+//	})
+//    @GetMapping(value = "/getSignAwardList")
+//    @PostMapping(value = "/getSignAwardList")
+//    public AjaxResult getSignAwardList(@RequestBody SignAwardListVO signAwardListVO) {
+//    	SysVipInfo user = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+//        Long userId = user.getId();
+//        Long companyId = user.getCompanyId();
+//        int size = activitySignReceiveRecordDao.getSignAwardReceiveCount(userId, companyId);
+//        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance(size);
+//        return ajaxResult;
+//    }
+    
     
     
     
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopDeliveryInfo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopDeliveryInfo.java
index 5bd8247..28519b6 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopDeliveryInfo.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopDeliveryInfo.java
@@ -129,6 +129,7 @@
 
 	private Long shopId;
 	private Long companyId;
+	private Long receiveId;
 	public Long getCompanyId() {
 		return companyId;
 	}
@@ -302,4 +303,12 @@
 	public void setShopId(Long shopId) {
 		this.shopId = shopId;
 	}
+
+	public Long getReceiveId() {
+		return receiveId;
+	}
+
+	public void setReceiveId(Long receiveId) {
+		this.receiveId = receiveId;
+	}
 }
\ No newline at end of file
diff --git "a/zq-erp/src/main/resources/config/db/increment/\347\255\276\345\210\260\346\264\273\345\212\250.sql" "b/zq-erp/src/main/resources/config/db/increment/\347\255\276\345\210\260\346\264\273\345\212\250.sql"
index 6380d46..966c947 100644
--- "a/zq-erp/src/main/resources/config/db/increment/\347\255\276\345\210\260\346\264\273\345\212\250.sql"
+++ "b/zq-erp/src/main/resources/config/db/increment/\347\255\276\345\210\260\346\264\273\345\212\250.sql"
@@ -172,6 +172,22 @@
 PRIMARY KEY(id)
 )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='核销记录';
 
+ALTER TABLE `activity_sign_receive_record`
+ADD COLUMN `consignee`  varchar(200) NULL COMMENT '收货人' AFTER `user_id`;
+
+ALTER TABLE `activity_sign_receive_record`
+ADD COLUMN `consignee_phone`  varchar(50) NULL COMMENT '联系电话' AFTER `user_id`;
+
+ALTER TABLE `activity_sign_receive_record`
+ADD COLUMN `consignee_address`  varchar(300) NULL COMMENT '收货地址' AFTER `consignee_phone`;
+
+ALTER TABLE `shop_delivery_info`
+ADD COLUMN `receive_id`  bigint(20) NULL COMMENT '奖品领取ID' AFTER `company_id`;
+
+
+
+
+
 
 
 
diff --git a/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml b/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml
index 30f587b..2a3fa33 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml
@@ -73,6 +73,9 @@
 			<if test="record.zjzxm != null and record.zjzxm != ''">
 				and b.nick_name like concat('%',#{record.zjzxm},'%')
 			</if>
+			<if test="record.hdmcbm != null and record.hdmcbm != ''">
+				and (c.act_name like concat('%',#{record.hdmcbm},'%') or c.act_code like concat('%',#{record.hdmcbm},'%'))
+			</if>
 		</where>
 		<if test="record.sort !=null">
 			order by
@@ -90,4 +93,12 @@
 		where a.user_id = #{userId} and a.award_id = #{receiveId}
 	</select>
 
+	<select id="selectShopDeliveryInfoByLogisticsId" resultType="com.matrix.system.shopXcx.bean.ShopDeliveryInfo">
+		SELECT
+			*
+		FROM
+			shop_delivery_info a
+		where a.id = #{logisticsId}
+	</select>
+
 </mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopDeliveryInfoDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopDeliveryInfoDao.xml
index fecc71b..f5cc7fb 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopDeliveryInfoDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopDeliveryInfoDao.xml
@@ -65,6 +65,7 @@
 			logistics_status,
 			delivery_time,
 			pick_up_status,
+			receive_id,
 			shop_id
 	</sql>
 
@@ -87,6 +88,7 @@
 			#{item.logisticsStatus},
 			#{item.deliveryTime},
 			#{item.pickUpStatus},
+			#{item.receiveId},
 			#{item.shopId}
 	</sql>
 
diff --git a/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html
index f8dd4d3..a57d98d 100644
--- a/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html
+++ b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html
@@ -17,11 +17,11 @@
     <style>
 
         .el-aside {
-            background-color: #D3DCE6;
+            background-color: #fff;
             color: #333;
         }
         .el-main {
-            background-color: #E9EEF3;
+            background-color: #fff;
             color: #333;
         }
         body > .el-container {
@@ -33,7 +33,6 @@
 
 <body>
 <div class="ibox-content" id="app" v-cloak>
-
     <el-container>
         <el-aside width="50%">
             <el-row style="padding: 20px">
@@ -100,7 +99,6 @@
                     </el-form>
                 </el-col>
             </el-row>
-
             <el-row style="padding: 20px">
                 <p class="el-big-title">收货地址</p>
             </el-row>
@@ -108,21 +106,21 @@
                 <el-row style="padding: 10px">
                     <el-col class="col-sm-10" >
                         <el-form-item label="收货人:" prop="shr">
-                            <el-input v-model="ruleForm.shr"></el-input>
+                            <el-input v-model="ruleForm.shr" :disabled="(formSelect.state == 3 ? true:false)"></el-input>
                         </el-form-item>
                     </el-col>
                 </el-row>
                 <el-row style="padding: 10px">
                     <el-col class="col-sm-10" >
                         <el-form-item label="联系电话:" prop="lxdh">
-                            <el-input v-model="ruleForm.lxdh"></el-input>
+                            <el-input v-model="ruleForm.lxdh" :disabled="(formSelect.state == 3 ? true:false)"></el-input>
                         </el-form-item>
                     </el-col>
                 </el-row>
                 <el-row style="padding: 10px">
                     <el-col class="col-sm-10" >
                         <el-form-item label="收货地址:" prop="shdz">
-                            <el-input v-model="ruleForm.shdz"></el-input>
+                            <el-input v-model="ruleForm.shdz" :disabled="(formSelect.state == 3 ? true:false)"></el-input>
                         </el-form-item>
                     </el-col>
                 </el-row>
@@ -139,21 +137,29 @@
                 </el-row>
                 <el-row style="padding: 10px">
                     <el-col class="col-sm-10" >
-                        <el-form-item label="快递公司:" prop="kdgs">
-                            <el-input v-model="ruleForm.kdgs"></el-input>
+                        <el-form-item label="快递公司编码:">
+                            <el-input v-model="ruleForm.kdgs" :disabled="(formSelect.state == 3 ? true:false)"></el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col class="col-sm-10" >
+                        <el-form-item label="快递公司" prop="kdgs">
+                            <el-select v-model="ruleForm.kdgs" :disabled="(formSelect.state == 3 ? true:false)"  placeholder="请选择" filterable>
+                                <el-option v-for="item in logisticsList " :key="item.code" :label="item.name" :value="item.code">
+                                </el-option>
+                            </el-select>
                         </el-form-item>
                     </el-col>
                 </el-row>
                 <el-row style="padding: 10px">
                     <el-col class="col-sm-10" >
                         <el-form-item label="快递单号:" prop="kddh">
-                            <el-input v-model="ruleForm.kddh"></el-input>
+                            <el-input :disabled="(formSelect.state == 3 ? true:false)" v-model="ruleForm.kddh"></el-input>
                         </el-form-item>
                     </el-col>
                 </el-row>
                 <el-row style="padding: 10px">
                     <el-col class="col-sm-12 text-center">
-                        <el-button type="primary" v-if="formSelect.state == 1"  @click="dataSubmit('ruleForm')">发货</el-button>
+                        <el-button type="primary" v-if="formSelect.djfs == 2 && formSelect.state != 3"  @click="dataSubmit('ruleForm')">发货</el-button>
                         <el-button type="danger" @click="cancelSubmit">关闭</el-button>
                     </el-col>
                 </el-row>
@@ -166,9 +172,18 @@
             </el-row>
 
             <el-row style="padding: 10px">
-                <el-steps :active="active" simple>
-                    <el-step :title="item.title" :icon="item.icon" v-for="item in stepData" :key ="item.index"></el-step>
-                </el-steps>
+                <div class="block">
+                    <el-timeline :reverse="reverse">
+                        <el-timeline-item
+                                v-for="(activity, index) in activities"
+                                :key="index"
+                                :timestamp="activity.timestamp" placement="top">
+                            <el-card>
+                                <p>{{activity.content}}</p>
+                            </el-card>
+                        </el-timeline-item>
+                    </el-timeline>
+                </div>
             </el-row>
 
         </el-main>
@@ -201,9 +216,13 @@
                 hdbh: '',
                 djfs: '',
                 state: '',
-                djsj: ''
+                djsj: '',
+                consignee: '',
+                consigneePhone: '',
+                consigneeAddress: '',
             },
             //物流信息
+            logisticsList:[],
             ruleForm : {
                 shr:'',
                 lxdh:'',
@@ -211,10 +230,10 @@
                 kdgs:'',
                 kddh:'',
             },
-            active: 0, // 控制步骤条及填写条目的显示
-            stepData: [{index: 0, title: '步骤1', icon: 'el-icon-edit'},
-                {index: 1, title: '步骤2', icon: 'el-icon-edit'},
-                {index: 2, title: '步骤3', icon: 'el-icon-edit'}],
+            //物流跟踪
+            reverse: true,
+            activities: [],
+
             rules : {
                 shr : [
                     { required: true, message: '请输入收货人', trigger: 'blur' }
@@ -226,7 +245,7 @@
                     { required: true, message: '请输入收货地址', trigger: 'blur' }
                 ],
                 kdgs : [
-                    { required: true, message: '请选择快递公司', trigger: 'blur' }
+                    { required: true, message: '请选择快递公司', trigger: 'change' }
                 ],
                 kddh : [
                     { required: true, message: '请输入快递单号', trigger: 'blur' }
@@ -235,6 +254,7 @@
         },
         created: function () {
             this.loadInfo();
+            this.getlogisticsList();
         },
         mounted: function () {
         },
@@ -249,25 +269,50 @@
                     url: basePath + '/admin/activitySignWriteoff/findSignWriteoff',
                     callback: function (data) {
                         _this.formSelect = data.mapInfo.signWriteoffVo;
+                        _this.activities = data.mapInfo.signWriteoffVo.activities;
                     }
                 });
             },
-            //核销
+            // 下拉框数据源---快递公司
+            getlogisticsList() {
+                let _this = this;
+                AjaxProxy.requst({
+                    app: _this,
+                    contentType: 'application/x-www-form-urlencoded',
+                    data:{
+                        type: '快递公司'
+                    },
+                    url: basePath + '/admin/dataDictionary/showDataDictionary',
+                    callback: function (data) {
+                        _this.logisticsList = data.rows;
+                    }
+                });
+            },
+            //发货
             dataSubmit : function(formName) {
                 const _this = this;
+                let flag = false;
                 _this.$refs[formName].validate((valid) => {
                     if (!valid) {
+                        flag = true;
                         return;
                     }
                 });
+                if (flag) {
+                    return;
+                }
                 let resultData = {
                     writeoffId : writeoffId,
-                    writeOffCode : _this.ruleForm.writeOffCode,
+                    shr : _this.ruleForm.shr,
+                    lxdh : _this.ruleForm.lxdh,
+                    shdz : _this.ruleForm.shdz,
+                    kdgs : _this.ruleForm.kdgs,
+                    kddh : _this.ruleForm.kddh,
                 }
                 AjaxProxy.requst({
                     app: _this,
                     data: resultData,
-                    url: basePath + '/admin/activitySignWriteoff/writeoffCodeSubmit',
+                    url: basePath + '/admin/activitySignWriteoff/logisticsSubmit',
                     callback: function (data) {
                         _this.$message({
                             message: data.info,
@@ -276,7 +321,7 @@
                     }
                 });
             },
-
+            //关闭
             cancelSubmit() {
                 this.closeFrame();
             },
diff --git a/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff.html b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff.html
index 806f771..3c585e0 100644
--- a/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff.html
+++ b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff.html
@@ -44,6 +44,9 @@
                     <el-form-item label="中奖人名称" prop="yhmc" >
                         <el-input v-model="form.yhmc" placeholder="中奖人名称"></el-input>
                     </el-form-item>
+                    <el-form-item label="输入活动名称/编码" prop="hdmcbm" >
+                        <el-input v-model="form.hdmcbm" placeholder="输入活动名称/编码"></el-input>
+                    </el-form-item>
                     <el-button type="primary" @click="searchFormSignReceive" >搜索</el-button>
                     <el-button @click="resetFormSignReceive('form')">重置</el-button>
                 </el-form>
@@ -189,6 +192,7 @@
             // 条件查询
             form:{
                 yhmc:'',
+                hdmcbm:'',
                 order:'',
                 sort:''
             },
@@ -225,7 +229,7 @@
             jumpTologistics(row){
                 layer.full(layer.open({
                     type: 2,
-                    title: "核销",
+                    title: "发货",
                     maxmin: true,
                     area: [MUI.SIZE_L, '500px'],
                     content : [ basePath + '/admin/redirect/activity/activity-sign-logistics-info?writeoffId=' + row.id]
@@ -252,6 +256,7 @@
                 let _this = this;
                 return   {
                     zjzxm:_this.form.yhmc,
+                    hdmcbm:_this.form.hdmcbm,
                     order:_this.form.order,
                     sort:_this.form.sort,
                 }

--
Gitblit v1.9.1