Procházet zdrojové kódy

售后流程修改

liujiankang před 5 roky
rodič
revize
66a217e683
24 změnil soubory, kde provedl 504 přidání a 81 odebrání
  1. 38 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerInfo.java
  2. 70 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintAfterSalesNum.java
  3. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintDetectInfo.java
  4. 20 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintSignclosedInfo.java
  5. 5 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/fm/ComplaintDetectInfoService.java
  6. 6 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/fm/ComplaintSignclosedInfoService.java
  7. 14 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java
  8. 47 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerInfoMapper.xml
  9. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintDetectInfoServiceImpl.java
  10. 23 11
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintSignclosedInfoServiceImpl.java
  11. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/ComplaintDetectInfoMapper.java
  12. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/ComplaintSignclosedInfoMapper.java
  13. 15 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintDetectInfoMapper.xml
  14. 20 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintSignclosedInfoMapper.xml
  15. 109 2
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  16. 0 2
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/log/LogAopHandler.java
  17. 2 1
      watero-rst-web/src/main/resources/platform.properties
  18. 1 0
      watero-rst-web/src/main/resources/watero-rst-orm.xml
  19. 88 14
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_list.ftl
  20. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_relation.ftl
  21. 1 1
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/add_signclosed.ftl
  22. 3 2
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/complete_signclosed.ftl
  23. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/customer_signclosed_list.ftl
  24. 11 40
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/signclosed_list.ftl

+ 38 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerInfo.java

@@ -184,6 +184,12 @@ public class CustomerInfo  implements Serializable {
     private Integer completeMaintenanceNum;//维修完成数量
     private Integer beenScrappedNum;//已报废的数量
     private Integer beenRenovatedNum;//已翻新的数量
+    private Integer afterState;// 1今日签收 2昨日签收 3前日签收 4.待检测 5已检测待确认 6.检测完成
+    private String afterTime;// 售后搜索日期条件
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
+    private Date warehouseDate;// 仓库签收日期 用作列表查询
+    private Integer warehouseDetectState;//状态 详情见数据库文档 用作列表查询 (1.待检测  2已检测,待确认 3待维修 4待翻新 5待报废 6维修完成 7翻新完成 8报废完成)
 
     public void setComplaintDetectList(List<ComplaintDetectInfo> complaintDetectList) {
         this.complaintDetectList = complaintDetectList;
@@ -982,4 +988,36 @@ public class CustomerInfo  implements Serializable {
     public void setBeenRenovatedNum(Integer beenRenovatedNum) {
         this.beenRenovatedNum = beenRenovatedNum;
     }
+
+    public Integer getAfterState() {
+        return afterState;
+    }
+
+    public void setAfterState(Integer afterState) {
+        this.afterState = afterState;
+    }
+
+    public String getAfterTime() {
+        return afterTime;
+    }
+
+    public void setAfterTime(String afterTime) {
+        this.afterTime = afterTime;
+    }
+
+    public Date getWarehouseDate() {
+        return warehouseDate;
+    }
+
+    public void setWarehouseDate(Date warehouseDate) {
+        this.warehouseDate = warehouseDate;
+    }
+
+    public Integer getWarehouseDetectState() {
+        return warehouseDetectState;
+    }
+
+    public void setWarehouseDetectState(Integer warehouseDetectState) {
+        this.warehouseDetectState = warehouseDetectState;
+    }
 }

+ 70 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintAfterSalesNum.java

@@ -0,0 +1,70 @@
+package com.iamberry.rst.core.fm;
+
+import java.io.Serializable;
+
+public class ComplaintAfterSalesNum implements Serializable{
+    private static final long serialVersionUID = 2487120927050982799L;
+    private Integer todaysignNum;//今日签收
+    private Integer yesterdaysignNum;//昨日签收
+    private Integer beforedaysignNum;//前日签收
+    private Integer contactNum;//待联系数量
+    private Integer beDetected;//待检测
+    private Integer beConfirmed;//已检测待确认
+    private Integer completeProcessing;//完成处理
+
+    public Integer getTodaysignNum() {
+        return todaysignNum;
+    }
+
+    public void setTodaysignNum(Integer todaysignNum) {
+        this.todaysignNum = todaysignNum;
+    }
+
+    public Integer getYesterdaysignNum() {
+        return yesterdaysignNum;
+    }
+
+    public void setYesterdaysignNum(Integer yesterdaysignNum) {
+        this.yesterdaysignNum = yesterdaysignNum;
+    }
+
+    public Integer getBeforedaysignNum() {
+        return beforedaysignNum;
+    }
+
+    public void setBeforedaysignNum(Integer beforedaysignNum) {
+        this.beforedaysignNum = beforedaysignNum;
+    }
+
+    public Integer getContactNum() {
+        return contactNum;
+    }
+
+    public void setContactNum(Integer contactNum) {
+        this.contactNum = contactNum;
+    }
+
+    public Integer getBeDetected() {
+        return beDetected;
+    }
+
+    public void setBeDetected(Integer beDetected) {
+        this.beDetected = beDetected;
+    }
+
+    public Integer getBeConfirmed() {
+        return beConfirmed;
+    }
+
+    public void setBeConfirmed(Integer beConfirmed) {
+        this.beConfirmed = beConfirmed;
+    }
+
+    public Integer getCompleteProcessing() {
+        return completeProcessing;
+    }
+
+    public void setCompleteProcessing(Integer completeProcessing) {
+        this.completeProcessing = completeProcessing;
+    }
+}

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintDetectInfo.java

@@ -89,6 +89,8 @@ public class ComplaintDetectInfo implements Serializable {
     private String[] configli5;//原因分析集合
     private String[] configli6;//维修配件集合
 
+    private Integer adminId;//登录人id
+
     public Integer getDetectId() {
         return detectId;
     }
@@ -552,4 +554,12 @@ public class ComplaintDetectInfo implements Serializable {
     public void setLogisticsNumber(String logisticsNumber) {
         this.logisticsNumber = logisticsNumber;
     }
+
+    public Integer getAdminId() {
+        return adminId;
+    }
+
+    public void setAdminId(Integer adminId) {
+        this.adminId = adminId;
+    }
 }

+ 20 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintSignclosedInfo.java

@@ -45,6 +45,10 @@ public class ComplaintSignclosedInfo implements Serializable {
     private String signclosedAddrAreaName;//寄件地址(区)
     private Integer sendbackId;//客诉寄回id
     private String signclosedLogisticsName;//物流公司名称
+    private String date;//日期查询
+
+    private Integer adminId;//登录人id
+
     public Integer getSignclosedId() {
         return signclosedId;
     }
@@ -260,4 +264,20 @@ public class ComplaintSignclosedInfo implements Serializable {
     public void setSignclosedLogisticsName(String signclosedLogisticsName) {
         this.signclosedLogisticsName = signclosedLogisticsName;
     }
+
+    public Integer getAdminId() {
+        return adminId;
+    }
+
+    public void setAdminId(Integer adminId) {
+        this.adminId = adminId;
+    }
+
+    public String getDate() {
+        return date;
+    }
+
+    public void setDate(String date) {
+        this.date = date;
+    }
 }

+ 5 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/fm/ComplaintDetectInfoService.java

@@ -168,4 +168,9 @@ public interface ComplaintDetectInfoService {
      * @return
      */
     List<TreatmentRecordLog> listTreatmentRecordLog(Integer detectId);
+    /**
+     * 查询检测数量
+     * @return
+     */
+    ComplaintAfterSalesNum getCustomerDetectNum(ComplaintDetectInfo detect);
 }

+ 6 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/fm/ComplaintSignclosedInfoService.java

@@ -6,6 +6,7 @@ import com.iamberry.rst.core.fm.SignclosedProductInfo;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -93,4 +94,9 @@ public interface ComplaintSignclosedInfoService {
      * @return
      */
     Integer delSignclosedBySendbackId(Integer sendbackId);
+    /**
+     * 查询某一天的签收数据
+     * @return
+     */
+    Integer getSignclosedDay(ComplaintSignclosedInfo complaintSignclosedInfo);
 }

+ 14 - 4
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -1731,6 +1731,7 @@ public class CustomerServiceImpl implements CustomerService {
         //查询所属公司
         CmRelation cmRelation = cmRelationMapper.getCmRelationById(sendbackInfo.getRelationId());
         /*添加待签收记录 2019年4月11日18:09:34 state*/
+
         ComplaintSignclosedInfo signclosedInfo = new ComplaintSignclosedInfo();
         signclosedInfo.setSignclosedLogistics(sendbackInfo.getSendbackLogisticsCompany());
         signclosedInfo.setSignclosedLogisticsNumber(sendbackInfo.getSendbackLogisticsNo());
@@ -1740,9 +1741,19 @@ public class CustomerServiceImpl implements CustomerService {
         signclosedInfo.setSignclosedIsReceiving(1); //未签收
         signclosedInfo.setSignclosedCompanyId(cmRelation.getCompanyId());
         signclosedInfo.setSignclosedCustomerId(cmRelation.getCustomerId());
-        if(complaintSignclosedInfoMapper.insert(signclosedInfo) < 1){
-            throw new RuntimeException("添加签收记录失败");
+        //查询是否已存在相同单号
+        if(sendbackInfo.getSendbackLogisticsNo() != null){
+            ComplaintSignclosedInfo sinfo = new ComplaintSignclosedInfo();
+            sinfo.setSignclosedLogisticsNumber(sendbackInfo.getSendbackLogisticsNo());
+            if(complaintSignclosedInfoMapper.listSignclosed(sinfo).size() <= 0){
+                if(complaintSignclosedInfoMapper.insert(signclosedInfo) < 1){
+                    throw new RuntimeException("添加签收记录失败");
+                }
+            }else{
+                throw new RuntimeException("添加签收记录失败,已存在相同物流单号的签收记录!");
+            }
         }
+
         for (SendbackItem info : sendbackItemList){
             info.setSendbackId(sendbackInfo.getSendbackId());
             if(info.getSendbackProdcueNumber() > 0){
@@ -1760,9 +1771,8 @@ public class CustomerServiceImpl implements CustomerService {
             signclosedProductInfo.setSignclosedProductType(productColor.getProductType());
             signclosedProductInfo.setSignclosedId(signclosedInfo.getSignclosedId());
                 complaintSignclosedProductInfoMapper.insert(signclosedProductInfo);
-            /*添加待签收记录 2019年4月11日18:09:34 end*/
-
         }
+        /*添加待签收记录 2019年4月11日18:09:34 end*/
         if(sendbackItemLists.size() > 0){
             Integer msgs = customerService.addSendbackItemList(sendbackItemLists);
             if(msgs < 1){

+ 47 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerInfoMapper.xml

@@ -427,6 +427,8 @@
     LEFT JOIN tb_rst_sys_admin a ON c.admin_id = a.admin_id
     LEFT JOIN tb_rst_sys_admin sa ON v.designated_admin_id = sa.admin_id
     LEFT JOIN tb_rst_sales_order_info soi ON soi.sales_customer_id = c.customer_id
+    LEFT JOIN tb_rst_complaint_signclosed cs ON cs.signclosed_customer_id = c.customer_id
+    LEFT JOIN tb_rst_complaint_detect cd ON c.customer_id = cd.customer_id
     <where>
       <if test="customerName != null and customerName != ''">
         c.customer_name like CONCAT('%',#{customerName},'%')
@@ -499,6 +501,51 @@
         WHERE DATEDIFF(NOW(), relation_create_time) &gt; 3
         )
       </if>
+      <if test="afterState != null and afterTime != null and afterState == 1">
+        and cs.signclosed_date = #{afterTime}
+      </if>
+      <if test="afterState != null and afterTime != null and afterState == 2">
+        and cs.signclosed_date = #{afterTime}
+      </if>
+      <if test="afterState != null and afterTime != null and afterState == 3">
+        and cs.signclosed_date = #{afterTime}
+      </if>
+      <if test="afterState != null and afterState == 4">
+        and cd.detect_state = 1
+      </if>
+      <if test="afterState != null and afterState == 5">
+        and cd.detect_state in(30,34,38)
+      </if>
+      <if test="afterState != null and afterState == 6">
+        and cd.detect_state in(32,33,36,37)
+      </if>
+      <if test="warehouseDate != null">
+        and cs.signclosed_date = #{warehouseDate}
+      </if>
+      <if test="warehouseDetectState != null and warehouseDetectState == 1">
+        and cd.detect_state = 1
+      </if>
+      <if test="warehouseDetectState != null and warehouseDetectState == 2">
+        and cd.detect_state in(30,34,38)
+      </if>
+      <if test="warehouseDetectState != null and warehouseDetectState == 3">
+        and cd.detect_state in(31,35)
+      </if>
+      <if test="warehouseDetectState != null and warehouseDetectState == 4">
+        and cd.detect_state  = 20
+      </if>
+      <if test="warehouseDetectState != null and warehouseDetectState == 5">
+        and cd.detect_state  = 22
+      </if>
+      <if test="warehouseDetectState != null and warehouseDetectState == 6">
+        and cd.detect_state in(32,36)
+      </if>
+      <if test="warehouseDetectState != null and warehouseDetectState == 7">
+        and cd.detect_state = 21
+      </if>
+      <if test="warehouseDetectState != null and warehouseDetectState == 8">
+        and cd.detect_state = 23
+      </if>
     </where>
     GROUP BY c.customer_id
     ORDER BY c.customer_id desc

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintDetectInfoServiceImpl.java

@@ -479,5 +479,10 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
         return complaintDetectInfoMapper.listTreatmentRecordLog(detectId);
     }
 
+    @Override
+    public ComplaintAfterSalesNum getCustomerDetectNum(ComplaintDetectInfo detect) {
+        return complaintDetectInfoMapper.getCustomerDetectNum(detect);
+    }
+
 
 }

+ 23 - 11
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintSignclosedInfoServiceImpl.java

@@ -52,7 +52,15 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
     public boolean insert(ComplaintSignclosedInfo record,
                           String orderItemString,String[] componentsImgs) {
         boolean msg = true;
-        int num = complaintSignclosedInfoMapper.insert(record);
+        int num = 0;
+        //查询是否已存在相同单号
+        if(record.getSignclosedLogisticsNumber() != null){
+            ComplaintSignclosedInfo info = new ComplaintSignclosedInfo();
+            info.setSignclosedLogisticsNumber(record.getSignclosedLogisticsNumber());
+            if(complaintSignclosedInfoMapper.listSignclosed(info).size() <= 0){
+                num = complaintSignclosedInfoMapper.insert(record);
+            }
+        }
         if(num < 1){
             msg = false;
         }else{
@@ -118,14 +126,13 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
                     }
                 }
             }
+            //关联客诉/判断是否生成客诉信息
+            try {
+                addDetect(record);
+            }catch (Exception e){
+                throw new RuntimeException("------------关联客诉出错------------");
+            }
         }
-        //关联客诉/判断是否生成客诉信息
-        try {
-            addDetect(record);
-        }catch (Exception e){
-            throw new RuntimeException("------------关联客诉出错------------");
-        }
-
         return msg;
     }
 
@@ -136,11 +143,11 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
      */
     public int addDetect(ComplaintSignclosedInfo record){
             CustomerInfo customerInfo = new CustomerInfo();
-        List<CustomerInfo> listCustomer = new ArrayList<>();
+            List<CustomerInfo> listCustomer = new ArrayList<>();
             if(record.getSignclosedCustomerId() != null){
                 customerInfo.setCustomerId(record.getSignclosedCustomerId());
-            }
-            if(record.getSignclosedLogisticsNumber() != null){
+                listCustomer = customerInfoMapper.listCustomer(customerInfo);
+            }else if(record.getSignclosedLogisticsNumber() != null){
                 //判断是否是京东
                 if (record.getSignclosedLogisticsNumber().contains("-")){
                         //截取-前的内容搜索一次
@@ -339,6 +346,11 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
         return complaintSignclosedInfoMapper.delSignclosedBySendbackId(sendbackId);
     }
 
+    @Override
+    public Integer getSignclosedDay(ComplaintSignclosedInfo complaintSignclosedInfo) {
+        return complaintSignclosedInfoMapper.getSignclosedDay(complaintSignclosedInfo);
+    }
+
     private Integer addSifnclosed(Map<String,Integer> Map,Integer signclosedId) {
         Integer msg = 0;
         for (Map.Entry<String, Integer> entry : Map.entrySet()) {

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/ComplaintDetectInfoMapper.java

@@ -146,5 +146,11 @@ public interface ComplaintDetectInfoMapper {
      */
     List<TreatmentRecordLog> listTreatmentRecordLog(Integer detectId);
 
+    /**
+     * 查询检测数量
+     * @return
+     */
+    ComplaintAfterSalesNum getCustomerDetectNum(ComplaintDetectInfo detect);
+
 
 }

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/ComplaintSignclosedInfoMapper.java

@@ -4,6 +4,7 @@ import com.iamberry.rst.core.fm.ComplaintSignclosedImg;
 import com.iamberry.rst.core.fm.ComplaintSignclosedInfo;
 import com.iamberry.rst.core.fm.SignclosedProductInfo;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -61,4 +62,9 @@ public interface ComplaintSignclosedInfoMapper {
      * @return
      */
     Integer delSignclosedBySendbackId(Integer sendbackId);
+    /**
+     * 查询某一天的签收数据
+     * @return
+     */
+    Integer getSignclosedDay(ComplaintSignclosedInfo complaintSignclosedInfo);
 }

+ 15 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintDetectInfoMapper.xml

@@ -519,4 +519,19 @@
     WHERE
     rl.detect_id = #{detectId}
   </select>
+
+    <select id="getCustomerDetectNum" parameterType="ComplaintDetectInfo" resultType="ComplaintAfterSalesNum">
+        SELECT
+            sum(CASE WHEN detect_state = 1 then 1 else 0 end) AS beDetected,
+            sum(CASE WHEN detect_state in(30,34,38) then 1 else 0 end) AS beConfirmed,
+            sum(CASE WHEN detect_state in(32,33,36,37) then 1 else 0 end) AS completeProcessing
+        FROM
+            tb_rst_complaint_detect cd
+        LEFT JOIN tb_rst_cm_customer_info ci ON ci.customer_id = cd.customer_id
+        <where>
+            <if test="adminId != null and adminId != ''" >
+                AND ci.admin_id = #{adminId}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 20 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintSignclosedInfoMapper.xml

@@ -161,6 +161,9 @@
       <if test="signclosedIsReceiving != null and signclosedIsReceiving != ''" >
         AND cs.signclosed_is_receiving = #{signclosedIsReceiving}
       </if>
+      <if test="signclosedDate != null and signclosedDate != ''" >
+        AND cs.signclosed_date = #{signclosedDate}
+      </if>
     </where>
     order by cs.signclosed_create_time DESC
   </select>
@@ -297,4 +300,21 @@
   <delete id="delSignclosedBySendbackId" parameterType="Integer">
     DELETE FROM tb_rst_complaint_signclosed WHERE sendback_id = #{sendbackId}
   </delete>
+
+  <select id="getSignclosedDay" parameterType="ComplaintSignclosedInfo" resultType="Integer">
+      SELECT count(*) from tb_rst_complaint_signclosed cs
+      LEFT JOIN tb_rst_cm_customer_info ci ON cs.signclosed_customer_id = ci.customer_id
+      <where>
+          signclosed_is_receiving = 2
+          <if test="date != null and date != ''" >
+              AND cs.signclosed_date = #{date}
+          </if>
+          <if test="adminId != null and adminId != ''" >
+              AND ci.admin_id = #{adminId}
+          </if>
+        <if test="isBinding != null and isBinding == 1" >
+          AND cs.signclosed_customer_id is NULL
+        </if>
+      </where>
+  </select>
 </mapper>

+ 109 - 2
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -1,9 +1,11 @@
 package com.iamberry.rst.controllers.cm;
 
+import com.iamberry.redis.RedisUtils;
 import com.iamberry.rst.core.address.City;
 import com.iamberry.rst.core.address.District;
 import com.iamberry.rst.core.address.Province;
 import com.iamberry.rst.core.cm.*;
+import com.iamberry.rst.core.fm.ComplaintAfterSalesNum;
 import com.iamberry.rst.core.fm.ComplaintDetectInfo;
 import com.iamberry.rst.core.fm.ComplaintSignclosedInfo;
 import com.iamberry.rst.core.fm.ComplaintSmallClassInfo;
@@ -479,6 +481,39 @@ public class AdminCustomerController {
             Integer adminId = AdminUtils.getLoginAdminId();
             customerInfo.setAdminId(adminId);
         }*/
+        //获取登录人id
+        Integer loginAdminId = AdminUtils.getLoginAdminId();
+        if(customerInfo != null){
+            if(customerInfo.getAfterState() != null) {
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                Calendar date = Calendar.getInstance();
+                date.setTime(new Date());
+                switch (customerInfo.getAfterState()) {
+                    case 1:
+                        //今日签收
+                        customerInfo.setAfterTime(sdf.format(date.getTime()));
+                        break;
+                    case 2:
+                        //昨日签收
+                        date.set(Calendar.DATE, date.get(Calendar.DATE) - 1);
+                        customerInfo.setAfterTime(sdf.format(date.getTime()));
+                        break;
+                    case 3:
+                        //前日签收
+                        date.set(Calendar.DATE, date.get(Calendar.DATE) - 2);
+                        customerInfo.setAfterTime(sdf.format(date.getTime()));
+                        break;
+                    }
+                    String isOneself = request.getParameter("isOneself");
+                    if(isOneself != null){
+                        if(isOneself.equals("2")){
+                            customerInfo.setAdminId(loginAdminId);
+                        }
+                    }
+                }
+
+         }
+
         PagedResult<CustomerInfo> pagedResult = customerService.listCustomer(pageNO, pageSize, customerInfo, totalNum == 0);
         if (totalNum != 0) {
             pagedResult.setTotal(totalNum);
@@ -512,8 +547,7 @@ public class AdminCustomerController {
         admin.setAdminStatus(1);
         List<Admin> adminList = sysService.listSelectAdmin(admin);
 
-        //获取登录人id
-        Integer loginAdminId = AdminUtils.getLoginAdminId();
+
         mv.addObject("complaintSmallClassInfoList", complaintSmallClassInfoList);
         mv.addObject("loginAdminId", loginAdminId);
         mv.addObject("typeList", typeList);
@@ -2527,5 +2561,78 @@ public class AdminCustomerController {
         rj.addResponseKeyValue("informationInfo",informationInfo);
         return rj;
     }
+
+    /**
+     * 查询签收/检测数量
+     * @param request
+     * @param isOneself 1全部  2只看自己
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/get_afterSalesNum")
+    public ResponseJson getAfterSalesNum(HttpServletRequest request,Integer isOneself){
+        ResponseJson rj = new ResponseJson(200, "查询成功", 200);
+        ComplaintAfterSalesNum complaintAfterSalesNum = new ComplaintAfterSalesNum();
+        //获取登录人id
+        Integer loginAdminId = AdminUtils.getLoginAdminId();
+        if(isOneself == null){
+            //查询缓存数据
+            String redisIsOneself = RedisUtils.get("CUSTOMER"+loginAdminId);
+            if(redisIsOneself == null){
+                RedisUtils.put("CUSTOMER"+loginAdminId,1);//新增缓存为查询全部
+                isOneself = 1;
+            }else{
+                isOneself = Integer.valueOf(redisIsOneself);
+            }
+        }else if(isOneself == 1){
+            RedisUtils.put("CUSTOMER"+loginAdminId,1);//更新缓存
+        }else if(isOneself == 2){
+            RedisUtils.put("CUSTOMER"+loginAdminId,2);//更新缓存
+        }
+
+        ComplaintDetectInfo detect = new ComplaintDetectInfo();
+        ComplaintSignclosedInfo signclosed = new ComplaintSignclosedInfo();
+        if (isOneself == 2) {
+            detect.setAdminId(loginAdminId);
+            signclosed.setAdminId(loginAdminId);
+        }
+        /*查询维修数据 state*/
+        ComplaintAfterSalesNum afterSalesNum = complaintDetectInfoService.getCustomerDetectNum(detect);
+        if(afterSalesNum == null){
+            complaintAfterSalesNum.setBeDetected(0);
+            complaintAfterSalesNum.setBeConfirmed(0);
+            complaintAfterSalesNum.setCompleteProcessing(0);
+        }else{
+            complaintAfterSalesNum.setBeDetected(afterSalesNum.getBeDetected());
+            complaintAfterSalesNum.setBeConfirmed(afterSalesNum.getBeConfirmed());
+            complaintAfterSalesNum.setCompleteProcessing(afterSalesNum.getCompleteProcessing());
+        }
+        /*查询维修数据 end*/
+        /*查询签收数据 state*/
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar date = Calendar.getInstance();
+        date.setTime(new Date());
+        //今日签收
+        signclosed.setDate(sdf.format(date.getTime()));
+        Integer s1 = complaintSignclosedInfoService.getSignclosedDay(signclosed);
+        complaintAfterSalesNum.setTodaysignNum(complaintSignclosedInfoService.getSignclosedDay(signclosed));
+
+        //昨日签收
+        date.set(Calendar.DATE, date.get(Calendar.DATE) - 1);
+        signclosed.setDate(sdf.format(date.getTime()));
+        complaintAfterSalesNum.setYesterdaysignNum(complaintSignclosedInfoService.getSignclosedDay(signclosed));
+        //前日签收
+        date.set(Calendar.DATE, date.get(Calendar.DATE) - 1);
+        signclosed.setDate(sdf.format(date.getTime()));
+        complaintAfterSalesNum.setBeforedaysignNum(complaintSignclosedInfoService.getSignclosedDay(signclosed));
+        //待联系
+        signclosed.setIsBinding(1);
+        signclosed.setDate(null);
+        complaintAfterSalesNum.setContactNum(complaintSignclosedInfoService.getSignclosedDay(signclosed));
+        /*查询签收数据 end*/
+        rj.addResponseKeyValue("complaintAfterSalesNum",complaintAfterSalesNum);
+        rj.addResponseKeyValue("isOneself",isOneself);
+        return rj;
+    }
 }
 

+ 0 - 2
watero-rst-web/src/main/java/com/iamberry/rst/controllers/log/LogAopHandler.java

@@ -39,8 +39,6 @@ public class LogAopHandler {
      */
     public Object doSaveLog(ProceedingJoinPoint joinPoint) throws Throwable {
 
-        System.out.println("日日日日-----------------------------");
-
         // 获取Reqest
         RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
         if (requestAttributes == null) {

+ 2 - 1
watero-rst-web/src/main/resources/platform.properties

@@ -62,7 +62,8 @@ ADD_CUSTOMER_SUCCESS_YULIA=\u3010YULIA\u51C0\u6C34\u673A\u3011\u5C0A\u656C\u7684
 ADD_CUSTOMER_SUCCESS_AIBERLE=\u3010\u7231\u8D1D\u6E90\u3011\u5C0A\u656C\u7684\u5BA2\u6237\u60A8\u597D\uFF0C\u5DF2\u6536\u5230\u60A8\u7684\u552E\u540E\u7533\u8BF7\uFF0C\u6211\u4EEC\u6B63\u79EF\u6781\u5904\u7406\uFF0C\u5904\u7406\u65B9\u5F0F\u4E3A\uFF1A{0}\uFF0C\u795D\u60A8\u751F\u6D3B\u6109\u5FEB\uFF08{1}\uFF09
 
 REMIND_POSTAGE_PENDING=\u3010\u7231\u8D1D\u6E90RST\u3011\u60A8\u6709{0}\u4E2A\u90AE\u8D39\u7533\u8BF7\u5F85\u5904\u7406\uFF0C\u8BF7\u5C3D\u5FEB\u524D\u5F80RST\u7CFB\u7EDF\u5904\u7406
-
+CUSTOMER_CONFIRM=\u3010\u7231\u8d1d\u6e90RST\u3011{0}\u5ba2\u670d\u5df2\u7ecf\u786e\u8ba4\uff0c\u6b64\u673a\u5668\u5df2\u7ecf\u786e\u8ba4{1}
+CUSTOMER_PHONE=18318941947
 #---SMS end---#
 
 # token

+ 1 - 0
watero-rst-web/src/main/resources/watero-rst-orm.xml

@@ -117,6 +117,7 @@
 		<typeAlias type="com.iamberry.rst.core.fm.MaterialItem" alias="MaterialItem"/>
 		<typeAlias type="com.iamberry.rst.core.fm.QcInfo" alias="QcInfo"/>
 		<typeAlias type="com.iamberry.rst.core.fm.TreatmentRecordLog" alias="TreatmentRecordLog"/>
+		<typeAlias type="com.iamberry.rst.core.fm.ComplaintAfterSalesNum" alias="ComplaintAfterSalesNum"/>
 
 		<typeAlias type="com.iamberry.rst.core.sys.SysConfig" alias="SysConfig"/>
 		<typeAlias type="com.iamberry.rst.core.sys.SystemLogs" alias="SystemLogs"/>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 88 - 14
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_list.ftl


+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_relation.ftl

@@ -833,7 +833,7 @@
                                                     <#--<#if info.signclosedProductType == 1 >
                                                         <span class="label label-success radius" title="${info.productName!''}-${info.productNumber!''}(${info.colorName!''})x ${info.productNum!''}台">${info.productName!''}-${info.productNumber!''}(${info.colorName!''})x ${info.productNum!''}台</span><br>
                                                     <#else >-->
-                                                        <span class="label label-success radius" title="${info.productName!''} x ${info.productNum!''}件">${info.productName!''} x ${info.productNum!''}件</span><br>
+                                                        <span class="label label-success radius" title="${info.productName!''} x ${info.productNum!''}件">${info.productName!''}-${info.colorName!''} x ${info.productNum!''}件</span><br>
                                                     <#--</#if>-->
                                                     </#list>
                                                 <#else >
@@ -1364,7 +1364,7 @@
                             layer.msg("添加成功!",{icon: 1,time:1000});
 
                     } else {
-                        layer.msg("添加失败!",{icon: 5,time:1000});
+                        layer.msg("添加失败,核查快递单号是否重复!",{icon: 5,time:1000});
                     }
                 },
                 error: function(XmlHttpRequest, textStatus, errorThrown){

+ 1 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/add_signclosed.ftl

@@ -466,7 +466,7 @@
                 } else if(data.returnCode == 503) {
                     layer.msg('有产品数量未填写,如本次签收没有此产品,请删除',{icon: 5,time:1000});
                 }else{
-                    layer.msg('添加失败',{icon: 5,time:1000});
+                    layer.msg('添加失败,核实是否已存在该单号!',{icon: 5,time:1000});
                 }
             },
             error: function(XmlHttpRequest, textStatus, errorThrown){

+ 3 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/complete_signclosed.ftl

@@ -93,7 +93,7 @@
                         <tr class="text-c" id="table1">
                             <th style="text-align: center;" width="30" >产品名称</th>
                             <th style="text-align: center;" width="25" >产品颜色</th>
-                            <th style="text-align: center;" width="10">售价</th>
+                            <#--<th style="text-align: center;" width="10">售价</th>-->
                             <th style="text-align: center;" width="10">数量</th>
                             <th style="text-align: center;" width="10">操作</th>
                         </tr>
@@ -106,7 +106,7 @@
                                         <input type="hidden" class="color_id" id="" value="${info.signclosedProductColor!''}" >
                                          <td>${info.productName!''}</td>
                                          <td>${info.colorName!''}</td>
-                                         <td>${info.colorPrice!''}</td>
+                                         <#--<td>${info.colorPrice!''}</td>-->
                                          <td><input type="text" class="input-text input-number item-num"  style="width: 100%;border: none;text-align: center;" name="" id="" placeholder="产品数量" value="${info.productNum!''}" onkeyup="keyFun($(this),999,1)" onpaste="keyFun($(this),999,1)"></td>
                                          <td><a href="javascript:void(0)" class="del_product all_down" onclick="delProduct($(this))" >删除</a></td>
                                          </tr>
@@ -336,6 +336,7 @@
                 cityHtml += '<option value="'+ city[i].cityId +'">'+ city[i].city +'</option>';
             }
             $("#city").html(cityHtml);
+            setAddressDis(city[0].cityId);
         });
         /*监听市选择事件*/
         $(document).on('change', '#city', function() {

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/customer_signclosed_list.ftl

@@ -110,9 +110,9 @@
                     </td>
                     <td class="text-c" width="100"><#if signclosed.signclosedIsReceiving??>
                         <#if signclosed.signclosedIsReceiving == 1>
-                            <span class="c-success">已签收</span>
+                            <span class="c-red">待签收</span>
                         <#elseif signclosed.signclosedIsReceiving == 2>
-                            <span class="c-red">未签收</span>
+                            <span class="c-success">已签收</span>
                         </#if>
                     </#if></td>
                     <td class="text-c" width="100">${signclosed.signclosedAddrProvincesName!}-${signclosed.signclosedAddrCityName!}-${signclosed.signclosedAddrAreaName!}</td>

+ 11 - 40
watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/signclosed_list.ftl

@@ -8,7 +8,7 @@
         *{padding: 0;margin: 0;}
         .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 25px;margin-right: 5px;}
         /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-11.png) right center no-repeat;background-size:auto 100%;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:3px 50px 6px 15px;height: 34px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-11.png) right center no-repeat;background-size:auto 100%;}
         .my-btn-search{border: 1px solid #50a2ea;padding: 1px 25px;height: 32px;background-color: #fff;color: #50a2ea;}
         .barcodeImg{margin:10px 0px}
         .table-bg thead th{background-color: #f7fafd;height: 40px;}
@@ -42,10 +42,16 @@
     <div class="text-c">
         <form name="form1" action="${path}/admin/signclosed/select_signclosed_list" method="post">
             <button type="button" style="cursor:pointer;float: left;" class="my-btn-search" onclick="add_signclosed('${path}/admin/signclosed/to_add_signclosed');">新建签收</button>
-            <input class="my-input" style="width: 120px;text-indent: 1em;" type="text" name="signclosedCustomerId" value="${signclosedCustomerId!}" placeholder="客诉编号"/>
+            <select class="my-select" name="signclosedIsReceiving" id="signclosedIsReceiving" style="height: 29px;width: 132px;margin-bottom: 10px;">
+                <option value="">签收状态</option>
+                <option value="1" <#if signclosedIsReceiving??><#if signclosedIsReceiving == 1 >selected="selected"</#if></#if>>待签收</option>
+                <option value="2" <#if signclosedIsReceiving??><#if signclosedIsReceiving == 2 >selected="selected"</#if></#if>>已签收</option>
+            </select>
+            <#--<input class="my-input" style="width: 120px;text-indent: 1em;" type="text" name="signclosedCustomerId" value="${signclosedCustomerId!}" placeholder="客诉编号"/>-->
             <input class="my-input" style="width: 120px;text-indent: 1em;" type="text" name="signclosedSendName" value="${signclosedSendName!}" placeholder="寄件人姓名"/>
             <input class="my-input" style="width: 120px;text-indent: 1em;" type="text" name="signclosedSendTel" value="${signclosedSendTel!}" placeholder="寄件人电话号码"/>
             <input class="my-input" style="width: 120px;text-indent: 1em;" type="text" name="signclosedLogisticsNumber" value="${signclosedLogisticsNumber!}" placeholder="快递单号"/>
+            <input class="my-input" style="width: 70px;" type="text" value="<#if signclosedDate??>${signclosedDate?string("yyyy-MM-dd")!''}</#if>" name="signclosedDate" id="signclosedDate" onClick="WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d'})" placeholder="签收日期" readonly="readonly"/>
             <#--<select class="my-select" name="signclosedType" style="height: 30px;width: 150px">
                 <option value ="">签收类型</option>
                 <option value ="1" <#if signclosedType??><#if signclosedType == 1>selected="selected"</#if></#if>>客诉寄回</option>
@@ -65,7 +71,7 @@
             <thead>
             <tr class="text-c">
                 <th width="50">签收ID</th>
-                <th width="50">客诉编号</th>
+                <#--<th width="50">客诉编号</th>-->
                 <th width="90">售后原因</th>
                 <th width="90">物流状态</th>
                 <th width="160">物流</th>
@@ -86,7 +92,7 @@
                 <#list page.dataList as signclosed>
                 <tr>
                     <td class="text-c" width="70" style="color: #50a2ea;">${signclosed.signclosedId!}</td>
-                    <td class="text-c" width="70">${signclosed.signclosedCustomerId!}</td>
+                    <#--<td class="text-c" width="70">${signclosed.signclosedCustomerId!}</td>-->
                     <td class="text-c" width="100">${signclosed.customerIdDescribe!}</td>
                     <td class="text-c" width="100">
                         <#if signclosed.signclosedIsReceiving??>
@@ -99,41 +105,6 @@
                     </td>
                     <td class="text-c" width="160">
                         <#if signclosed.signclosedLogistics??>
-                            <#--<#if signclosed.signclosedLogistics == "sto">
-                                申通快递
-                            <#elseif signclosed.signclosedLogistics == "yto">
-                                圆通快递
-                            <#elseif signclosed.signclosedLogistics == "zto">
-                                中通速递
-                            <#elseif signclosed.signclosedLogistics == "sf">
-                                顺丰快递
-                            <#elseif signclosed.signclosedLogistics == "ems">
-                                邮政EMS
-                            <#elseif signclosed.signclosedLogistics == "eyb">
-                                E邮宝
-                            <#elseif signclosed.signclosedLogistics == "zjs">
-                                宅急送
-                            <#elseif signclosed.signclosedLogistics == "yunda">
-                                韵达快递
-                            <#elseif signclosed.signclosedLogistics == "cces">
-                                cces快递
-                            <#elseif signclosed.signclosedLogistics == "pick">
-                                上门提货
-                            <#elseif signclosed.signclosedLogistics == "htky">
-                                汇通快递
-                            <#elseif signclosed.signclosedLogistics == "ttkdex">
-                                天天快递
-                            <#elseif signclosed.signclosedLogistics == "stars">
-                                星晨急便
-                            <#elseif signclosed.signclosedLogistics == "jd">
-                                京东快递
-                            <#elseif signclosed.signclosedLogistics == "01">
-                                其他
-                            <#elseif signclosed.signclosedLogistics == "02">
-                                上门送货
-                            <#elseif signclosed.signclosedLogistics == "longbanwuliu">
-                                龙邦快递
-                            </#if>-->
                         ${signclosed.signclosedLogisticsName!}
                             -
                         </#if>
@@ -148,7 +119,7 @@
                                     <#--<#if info.signclosedProductType == 1 >
                                         <span class="label label-default radius" title="${info.productName!''}-${info.productNumber!''}(${info.colorName!''})x ${info.productNum!''}台">${info.productName!''}-${info.productNumber!''}(${info.colorName!''})x ${info.productNum!''}台</span><br>
                                     <#else >-->
-                                        <span class="label label-default radius" title="${info.productName!''} x ${info.productNum!''}件">${info.productName!''} x ${info.productNum!''}件</span><br>
+                                        <span class="label label-default radius" title="${info.productName!''} x ${info.productNum!''}件">${info.productName!''}-${info.colorName!''} x ${info.productNum!''}件</span><br>
                                     <#--</#if>-->
                                 </#list>
                             <#else >