liujs 3 years ago
parent
commit
e46a0999bf

+ 21 - 0
sendmessage/src/main/java/cn/haliaeetus/sendmessage/bean/delivery/DeliveryOperationRecode.java

@@ -0,0 +1,21 @@
+package cn.haliaeetus.sendmessage.bean.delivery;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author LiuJS
+ * @Time 2021/6/28 16:33
+ * @Desc
+ * @Version 1.0
+ */
+@Data
+public class DeliveryOperationRecode {
+    private Long id;
+    private Integer storeId;
+    private String expcode;
+    private Integer status;
+    private String operationContent;
+    private Date createTime;
+}

+ 113 - 0
sendmessage/src/main/java/cn/haliaeetus/sendmessage/bean/dto/PhoneLibDto.java

@@ -14,6 +14,102 @@ public class PhoneLibDto extends BaseEntity implements Jsoned {
     private String phones;
     private int storeId;
     private Date createTime;
+    /**
+     * 小区Id
+     */
+    private int areaId;
+    /**
+     * 小区名称
+     */
+    private String areaName;
+    /**
+     * 收件人名称
+     */
+    private String consingeeName;
+    /**
+     * 收件人电话
+     */
+    private String consingeePhone;
+    /**
+     * 收件人地址
+     */
+    private String address;
+    /**
+     * 楼栋号
+     */
+    private String buildingNumber;
+    /**
+     * 楼层号
+     */
+    private String floorNumber;
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public int getAreaId() {
+        return areaId;
+    }
+
+    public void setAreaId(int areaId) {
+        this.areaId = areaId;
+    }
+
+    public String getAreaName() {
+        return areaName;
+    }
+
+    public void setAreaName(String areaName) {
+        this.areaName = areaName;
+    }
+
+    public String getConsingeeName() {
+        return consingeeName;
+    }
+
+    public void setConsingeeName(String consingeeName) {
+        this.consingeeName = consingeeName;
+    }
+
+    public String getConsingeePhone() {
+        return consingeePhone;
+    }
+
+    public void setConsingeePhone(String consingeePhone) {
+        this.consingeePhone = consingeePhone;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getBuildingNumber() {
+        return buildingNumber;
+    }
+
+    public void setBuildingNumber(String buildingNumber) {
+        this.buildingNumber = buildingNumber;
+    }
+
+    public String getFloorNumber() {
+        return floorNumber;
+    }
+
+    public void setFloorNumber(String floorNumber) {
+        this.floorNumber = floorNumber;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
 
     public String getPhones() {
         return phones;
@@ -39,6 +135,23 @@ public class PhoneLibDto extends BaseEntity implements Jsoned {
         this.createTime = createTime;
     }
 
+    public PhoneLibDto(String phones, int storeId, Date createTime, int areaId, String areaName, String consingeeName, String consingeePhone, String address, String buildingNumber, String floorNumber, String remark) {
+        this.phones = phones;
+        this.storeId = storeId;
+        this.createTime = createTime;
+        this.areaId = areaId;
+        this.areaName = areaName;
+        this.consingeeName = consingeeName;
+        this.consingeePhone = consingeePhone;
+        this.address = address;
+        this.buildingNumber = buildingNumber;
+        this.floorNumber = floorNumber;
+        this.remark = remark;
+    }
+
+    public PhoneLibDto() {
+    }
+
     public JsonObject toJson() {
         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         JsonObject jsonObject = new JsonObject();

+ 2 - 2
sendmessage/src/main/java/cn/haliaeetus/sendmessage/bean/sms/SMSSendQueue.java

@@ -10,11 +10,11 @@ import javax.validation.constraints.NotNull;
 
 public class SMSSendQueue extends BaseEntity {
 
-    @NotNull(message = "运单信息不能为空", groups = SendSms.class)
+    @NotNull(message = "锟剿碉拷锟斤拷息锟斤拷锟斤拷为锟斤拷", groups = SendSms.class)
     @Valid
     private DeliveryDto deliveryDtos;
 
-    @NotNull(message = "用户信息不能为空", groups = SendSms.class)
+    @NotNull(message = "锟矫伙拷锟斤拷息锟斤拷锟斤拷为锟斤拷", groups = SendSms.class)
     @Valid
     private User user;
 

+ 10 - 0
sendmessage/src/main/java/cn/haliaeetus/sendmessage/controller/web/QueryCondition/DeliveryQueryCondition.java

@@ -105,6 +105,8 @@ public class DeliveryQueryCondition extends BaseQueryCondition{
     private String revshelfCode;
 
     private int fillType;
+
+    private String signPhotoUrl;
 	
     private int smsStatus;//短信状态
 
@@ -520,4 +522,12 @@ public class DeliveryQueryCondition extends BaseQueryCondition{
 	public void setExp_Id(String exp_Id) {
 		this.exp_Id = exp_Id;
 	}
+
+	public String getSignPhotoUrl() {
+		return signPhotoUrl;
+	}
+
+	public void setSignPhotoUrl(String signPhotoUrl) {
+		this.signPhotoUrl = signPhotoUrl;
+	}
 }

+ 3 - 5
sendmessage/src/main/java/cn/haliaeetus/sendmessage/dao/DeliveryDao.java

@@ -2,14 +2,10 @@ package cn.haliaeetus.sendmessage.dao;
 
 import cn.haliaeetus.sendmessage.bean.delivery.Delivery;
 import cn.haliaeetus.sendmessage.controller.web.QueryCondition.DeliveryQueryCondition;
-import cn.haliaeetus.sendmessage.framework.mybatis.persistence.BaseMybatisDAO;
 import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 /**
  * 
@@ -51,4 +47,6 @@ public interface DeliveryDao{
     public Delivery getById(DeliveryQueryCondition qc);
 
     Integer updateExpSignBackStatus(String expcode, String storeId,String reason);
+
+	void addExpressRecode(@Param("storeId") Integer storeId, @Param("expCode") String expCode, @Param("status") int status, @Param("createTime") Date date);
 }

+ 6 - 0
sendmessage/src/main/java/cn/haliaeetus/sendmessage/dao/PhoneLibDao.java

@@ -18,4 +18,10 @@ public interface PhoneLibDao {
     void insert(List<PhoneLibDto> phoneLibDtos);
 
     int countByStoreIdAndPhone(@Param("storeId") int storeId, @Param("phones") String phones);
+
+    int consigneeInfoCount(@Param("storeId") int storeId, @Param("phones") String phones);
+
+    void insertConsigneeInfo(@Param("phoneLibDto") PhoneLibDto phoneLibDto);
+
+    int getAreaId(@Param("storeId") int storeId);
 }

+ 7 - 0
sendmessage/src/main/java/cn/haliaeetus/sendmessage/message/consumer/PhoneLibListener.java

@@ -56,6 +56,13 @@ public class PhoneLibListener {
                 phoneLibDtos.add(phoneLibDto);
                 phoneLibDao.insert(phoneLibDtos);
             }
+            //收件人信息同步
+            int counta = phoneLibDao.consigneeInfoCount(phoneLibDto.getStoreId(), phoneLibDto.getPhones());
+            if (counta == 0) {
+                phoneLibDto.setPhones(phoneLibDto.getPhones().substring(phoneLibDto.getPhones().length() - 4));
+                phoneLibDto.setAreaId(phoneLibDao.getAreaId(phoneLibDto.getStoreId()));
+                phoneLibDao.insertConsigneeInfo(phoneLibDto);
+            }
         } catch (Exception e) {
             e.printStackTrace();
         } finally {

+ 3 - 0
sendmessage/src/main/java/cn/haliaeetus/sendmessage/service/DeliveryService.java

@@ -6,6 +6,7 @@ import cn.haliaeetus.sendmessage.bean.delivery.Delivery;
 import cn.haliaeetus.sendmessage.bean.delivery.DeliveryInfo;
 import cn.haliaeetus.sendmessage.bean.dto.DeliveryDto;
 import cn.haliaeetus.sendmessage.bean.dto.QueryPageDto;
+import cn.haliaeetus.sendmessage.bean.dto.SignBackDto;
 import cn.haliaeetus.sendmessage.controller.web.QueryCondition.DeliveryQueryCondition;
 import cn.haliaeetus.sendmessage.exception.BusinessException;
 import cn.haliaeetus.sendmessage.framework.toolkit.PagedList;
@@ -40,4 +41,6 @@ public interface DeliveryService {
     void resendSms(Integer storeId, List<Integer> ids, String platform) throws Exception;
 
     boolean updateExpSignBackStatus(String expcode,String storeId,String reason);
+
+    void addExpressRecode(Integer id, String expCode, int status);
 }

+ 7 - 4
sendmessage/src/main/java/cn/haliaeetus/sendmessage/service/impl/DeliveryServiceImpl.java

@@ -3,6 +3,7 @@ package cn.haliaeetus.sendmessage.service.impl;
 import cn.haliaeetus.sendmessage.bean.basedata.User;
 import cn.haliaeetus.sendmessage.bean.delivery.Delivery;
 import cn.haliaeetus.sendmessage.bean.dto.DeliveryDto;
+import cn.haliaeetus.sendmessage.bean.dto.SignBackDto;
 import cn.haliaeetus.sendmessage.bean.sms.SMSSendQueue;
 import cn.haliaeetus.sendmessage.constants.Constants;
 import cn.haliaeetus.sendmessage.controller.web.QueryCondition.DeliveryQueryCondition;
@@ -22,10 +23,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.sql.Timestamp;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 待重构
@@ -127,6 +125,11 @@ public class DeliveryServiceImpl implements DeliveryService {
 		return true;
 	}
 
+	@Override
+	public void addExpressRecode(Integer storeId, String expCode, int status) {
+		deliveryDao.addExpressRecode(storeId, expCode, status, new Date());
+	}
+
 	private Map<Integer, DeliveryDto> getDeliveryWithSmsStatus(
 			List<DeliveryDto> deliveryDtoList, int storeId) {
 

+ 11 - 1
sendmessage/src/main/java/cn/haliaeetus/sendmessage/service/impl/ExpressHandleServiceImpl.java

@@ -128,7 +128,7 @@ public class ExpressHandleServiceImpl implements ExpressHandleService {
 
     @Override
     public String signBack(SignBackDto signBackDto){
-        try{
+        /*try{
             // 处理取件码
             String shelfId = signBackDto.getShelfId();
             StoreShelf storeShelf;
@@ -137,7 +137,17 @@ public class ExpressHandleServiceImpl implements ExpressHandleService {
             }
         }catch (NumberFormatException e){
             log.warn("取件码处理异常:" + e.getMessage());
+        }*/
+
+        int status = 0;
+        if (signBackDto.getActionType().equals("in")){
+            status = 122;
+        }else if (signBackDto.getActionType().equals("out")){
+            status = 126;
+        }else {
+            status = 246;
         }
+        deliveryService.addExpressRecode(signBackDto.getStore().getId(), signBackDto.getExpCode(), status);
 
         // 快递公司处理
         if(signBackDto.getExpressSignBean() != null && signBackDto.getExpressSignBean().getIs_valid()){

+ 6 - 8
sendmessage/src/main/java/cn/haliaeetus/sendmessage/service/impl/MessageSendServiceImpl.java

@@ -11,10 +11,7 @@ import cn.haliaeetus.sendmessage.dao.SmsRecordDao;
 import cn.haliaeetus.sendmessage.framework.factory.platform.PlatformFactory;
 import cn.haliaeetus.sendmessage.framework.log.Logger;
 import cn.haliaeetus.sendmessage.framework.toolkit.CacheTool;
-import cn.haliaeetus.sendmessage.service.BasicInfoService;
-import cn.haliaeetus.sendmessage.service.MessageSendService;
-import cn.haliaeetus.sendmessage.service.StoreShelfService;
-import cn.haliaeetus.sendmessage.service.StoreStaffService;
+import cn.haliaeetus.sendmessage.service.*;
 import cn.haliaeetus.sendmessage.service.delivery.DeliveryMsgTemplateConfigService;
 import cn.haliaeetus.sendmessage.service.delivery.DeliveryMsgTemplateService;
 import cn.haliaeetus.sendmessage.service.delivery.DeliverySpecialMsgTemplateService;
@@ -31,10 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 
 import static cn.haliaeetus.sendmessage.utils._.isEmpty;
 import static cn.haliaeetus.sendmessage.utils._.trimToEmpty;
@@ -52,6 +46,9 @@ public class MessageSendServiceImpl implements MessageSendService {
     private static final Logger LOG = Logger.getInstance(MessageSendServiceImpl.class);
 
     @Autowired
+    private DeliveryService deliveryService;
+
+    @Autowired
     private DeliveryStatusService deliveryStatusService;
 
     @Autowired
@@ -396,6 +393,7 @@ public class MessageSendServiceImpl implements MessageSendService {
                 break;
             }
         }
+        deliveryService.addExpressRecode(delivery.getStoreId(), delivery.getExpcode(), 0);
         return smsCount;
     }
 

+ 0 - 2
sendmessage/src/main/java/cn/haliaeetus/sendmessage/service/sms/impl/SmsRecordServiceImpl.java

@@ -15,7 +15,6 @@ import cn.haliaeetus.sendmessage.service.BasicInfoService;
 import cn.haliaeetus.sendmessage.service.sms.SmsRecordService;
 import cn.haliaeetus.sendmessage.utils.config.RabbitConfig;
 import com.alibaba.fastjson.JSON;
-import com.google.common.base.Strings;
 import com.google.gson.Gson;
 import com.rabbitmq.client.Channel;
 import lombok.extern.slf4j.Slf4j;
@@ -23,7 +22,6 @@ import org.springframework.amqp.core.AmqpTemplate;
 import org.springframework.amqp.support.AmqpHeaders;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.messaging.handler.annotation.Headers;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;

+ 8 - 1
sendmessage/src/main/resources/cn/haliaeetus/sendmessage/dao/DeliveryMapper.xml

@@ -161,7 +161,11 @@
 
   </sql>
 
-  <!-- 通用update语句 -->
+    <insert id="addExpressRecode">
+        insert into fhm_xiaomai_jisu.express_operation_record (store_id, expcode, status, create_time) values (#{storeId}, #{expCode}, #{status}, #{createTime})
+    </insert>
+
+    <!-- 通用update语句 -->
    <update id="update" parameterType="cn.haliaeetus.sendmessage.controller.web.QueryCondition.DeliveryQueryCondition" >
     update delivery_${storeId}
     <set >
@@ -265,6 +269,9 @@
       <if test="entity.sendBackReason != null" >
         send_back_reason = #{entity.sendBackReason ,jdbcType=VARCHAR},
       </if>
+        <if test="entity.sendBackReason != null" >
+            send_back_reason = #{entity.sendBackReason ,jdbcType=VARCHAR},
+        </if>
     </set>
      where 
        <include refid="Base_Where_List" />

+ 87 - 0
sendmessage/src/main/resources/cn/haliaeetus/sendmessage/dao/PhoneLibMapper.xml

@@ -1,6 +1,80 @@
 <?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="cn.haliaeetus.sendmessage.dao.PhoneLibDao" >
+
+  <sql id="consigneeInfoKey">
+    <trim suffixOverrides=",">
+      <if test="phoneLibDto.areaId!= 0">
+        area_id,
+      </if>
+      <if test="phoneLibDto.storeId!= 0">
+        store_id,
+      </if>
+      <if test="phoneLibDto.consingeeName != null and phoneLibDto.consingeeName != ''">
+        consignee_name,
+      </if>
+      <if test="phoneLibDto.consingeePhone != null and phoneLibDto.consingeePhone != ''">
+        consignee_phone,
+      </if>
+      <if test="phoneLibDto.phones != null and phoneLibDto.phones != ''">
+        phone,
+      </if>
+      <if test="phoneLibDto.address != null and phoneLibDto.address != ''">
+        address,
+      </if>
+      <if test="phoneLibDto.buildingNumber != null and phoneLibDto.buildingNumber != ''">
+        building_number,
+      </if>
+      <if test="phoneLibDto.floorNumber != null and phoneLibDto.floorNumber != ''">
+        floor_number,
+      </if>
+      <if test="phoneLibDto.remark != null and phoneLibDto.remark != ''">
+        remark,
+      </if>
+      is_used,
+      <if test="phoneLibDto.createTime != null">
+        create_time,
+      </if>
+    </trim>
+  </sql>
+
+  <!-- 对应的插入字段的值 -->
+  <sql id="consigneeInfoValues">
+    <trim suffixOverrides=",">
+      <if test="phoneLibDto.areaId!= 0">
+        #{phoneLibDto.areaId},
+      </if>
+      <if test="phoneLibDto.storeId!= 0">
+        #{phoneLibDto.storeId},
+      </if>
+      <if test="phoneLibDto.consingeeName != null and phoneLibDto.consingeeName != ''">
+        #{phoneLibDto.consingeeName},
+      </if>
+      <if test="phoneLibDto.consingeePhone != null and phoneLibDto.consingeePhone != ''">
+        #{phoneLibDto.consingeePhone},
+      </if>
+      <if test="phoneLibDto.phones != null and phoneLibDto.phones != ''">
+        #{phoneLibDto.phones},
+      </if>
+      <if test="phoneLibDto.address != null and phoneLibDto.address != ''">
+        #{phoneLibDto.address},
+      </if>
+      <if test="phoneLibDto.buildingNumber != null and phoneLibDto.buildingNumber != ''">
+        #{phoneLibDto.buildingNumber},
+      </if>
+      <if test="phoneLibDto.floorNumber != null and phoneLibDto.floorNumber != ''">
+        #{phoneLibDto.floorNumber},
+      </if>
+      <if test="phoneLibDto.remark != null and phoneLibDto.remark != ''">
+        #{phoneLibDto.remark},
+      </if>
+      1,
+      <if test="phoneLibDto.createTime != null">
+        #{phoneLibDto.createTime},
+      </if>
+    </trim>
+  </sql>
+
   <insert id="insert" parameterType="java.util.List">
     insert into fhm_xiaomai_jisu.lib_phone (storeId, phones,createTime)
     values
@@ -9,9 +83,22 @@
     </foreach>
   </insert>
 
+  <insert id="insertConsigneeInfo">
+    insert into fhm_xiaomai_jisu.consignee_info (<include refid="consigneeInfoKey"/>) values (<include refid="consigneeInfoValues"/>)
+  </insert>
+
   <select id="countByStoreIdAndPhone" resultType="java.lang.Integer" parameterType="java.util.Map" >
     select count(id)
     from fhm_xiaomai_jisu.lib_phone where storeId=#{storeId,jdbcType=INTEGER} and phones = #{phones,jdbcType=VARCHAR}
   </select>
 
+  <select id="consigneeInfoCount" resultType="java.lang.Integer">
+    select count(id)
+    from fhm_xiaomai_jisu.consignee_info where store_id=#{storeId} and consignee_phone = #{phones}
+  </select>
+
+  <select id="getAreaId" resultType="java.lang.Integer">
+    select id from fhm_xiaomai_jisu.area_info where store_id=#{storeId}
+  </select>
+
 </mapper>