Переглянути джерело

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

# Conflicts:
#	watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_list.ftl
liujiankang 5 роки тому
батько
коміт
18f8f48302

+ 9 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ComplaintQuestionInfo.java

@@ -25,6 +25,7 @@ public class ComplaintQuestionInfo implements Serializable {
 
     private Integer complaintId; //问题分类id
     private Integer complaintType;//咨询类型 1.售前 2.售后 3.其它
+    private Integer detectComplaintType;//与产品类型表绑定 1净水机2电动牙刷3净水花洒4软水机5果蔬机6净水龙头
 
     private Integer questionNum; //数量
 
@@ -131,4 +132,12 @@ public class ComplaintQuestionInfo implements Serializable {
     public void setQuestionNum(Integer questionNum) {
         this.questionNum = questionNum;
     }
+
+    public Integer getDetectComplaintType() {
+        return detectComplaintType;
+    }
+
+    public void setDetectComplaintType(Integer detectComplaintType) {
+        this.detectComplaintType = detectComplaintType;
+    }
 }

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

@@ -120,8 +120,32 @@ public class ComplaintDetectInfo implements Serializable {
 
     private Integer state;//查询各状态条数
     private Integer signclosedIsWhetherLess;//是否少件 1是 2否
+    private Integer salesmanAdminId;//业务员id
+    private String  detectName;//客户姓名
+    private String detectTel;//客户电话
+    private Integer questionId;//客户问题id
+    private Integer methodId;//新增维修 处理方式id
+    private Integer detectSource;//数据来源1,自动录入2手动添加
+    private String questionName;//问题名称
+    private String questionProfile;//问题回复
 
 
+    public String getQuestionName() {
+        return questionName;
+    }
+
+    public void setQuestionName(String questionName) {
+        this.questionName = questionName;
+    }
+
+    public String getQuestionProfile() {
+        return questionProfile;
+    }
+
+    public void setQuestionProfile(String questionProfile) {
+        this.questionProfile = questionProfile;
+    }
+
     public Integer getDetectId() {
         return detectId;
     }
@@ -745,4 +769,52 @@ public class ComplaintDetectInfo implements Serializable {
     public void setSignclosedIsWhetherLess(Integer signclosedIsWhetherLess) {
         this.signclosedIsWhetherLess = signclosedIsWhetherLess;
     }
+
+    public Integer getSalesmanAdminId() {
+        return salesmanAdminId;
+    }
+
+    public void setSalesmanAdminId(Integer salesmanAdminId) {
+        this.salesmanAdminId = salesmanAdminId;
+    }
+
+    public String getDetectName() {
+        return detectName;
+    }
+
+    public void setDetectName(String detectName) {
+        this.detectName = detectName;
+    }
+
+    public String getDetectTel() {
+        return detectTel;
+    }
+
+    public void setDetectTel(String detectTel) {
+        this.detectTel = detectTel;
+    }
+
+    public Integer getQuestionId() {
+        return questionId;
+    }
+
+    public void setQuestionId(Integer questionId) {
+        this.questionId = questionId;
+    }
+
+    public Integer getMethodId() {
+        return methodId;
+    }
+
+    public void setMethodId(Integer methodId) {
+        this.methodId = methodId;
+    }
+
+    public Integer getDetectSource() {
+        return detectSource;
+    }
+
+    public void setDetectSource(Integer detectSource) {
+        this.detectSource = detectSource;
+    }
 }

+ 7 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/fm/ComplaintDetectInfoService.java

@@ -74,12 +74,18 @@ public interface ComplaintDetectInfoService {
     List<ComplaintDetectInfo> listComplaintDetect(ComplaintDetectInfo detectInfo);
 
     /**
-     * 获取品质检测列表
+     * 客服确认处理方式
      * @return
      */
     boolean customerConfirm(ComplaintDetectInfo detectInfo,Admin admin);
 
     /**
+     * 业务员确认处理方式
+     * @return
+     */
+    boolean salesmanConfirm(ComplaintDetectInfo detectInfo);
+
+    /**
      * 查询检测图片
      * @return
      */

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

@@ -73,6 +73,9 @@
       <if test="complaintType != null">
         AND tb_rst_cm_complaint_type.complaint_consulting_type = #{complaintType}
       </if>
+      <if test="detectComplaintType != null">
+        AND tb_rst_cm_complaint_type.complaint_type = #{detectComplaintType}
+      </if>
       AND question_state = 1
     </where>
     ORDER BY question_create_time DESC

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

@@ -518,7 +518,7 @@
         and cd.maintenance_cut_time &lt; now()  AND cc.procTypeId = 3 and cd.detect_placeorder = 1  and cd.detect_state = 1
       </if>
       <if test="afterState != null and afterState == 10">
-        and cd.complete_cut_time &lt; now()   AND cc.procTypeId = 3 and cd.detect_placeorder = 1 and detect_state in(32,36)
+        and cd.complete_cut_time &lt; now()   AND cc.procTypeId = 3 and cd.detect_placeorder = 1  and detect_state != 32 AND detect_state != 36
       </if>
       <if test="warehouseDate != null">
         and cs.signclosed_date = #{warehouseDate}

+ 144 - 11
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintDetectInfoServiceImpl.java

@@ -14,10 +14,12 @@ import com.iamberry.rst.service.cm.mapper.CustomerInfoMapper;
 import com.iamberry.rst.service.cm.mapper.ProcMethodMapper;
 import com.iamberry.rst.service.fm.mapper.ComplaintDetectInfoMapper;
 import com.iamberry.rst.service.fm.mapper.ComplaintMaintenanceInfoMapper;
+import com.iamberry.rst.service.sys.mapper.SysMapper;
 import com.iamberry.rst.util.PageUtil;
 import com.iamberry.rst.util.SmsConfig;
 import com.iamberry.wechat.core.entity.AdminUtils;
 import com.iamberry.wechat.tools.ResponseJson;
+import com.iamberry.wechat.tools.ResultInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -41,6 +43,8 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
     private ProcMethodMapper procMethodMapper;
     @Autowired
     private SmsService smsService;
+    @Autowired
+    private SysMapper sysMapper;
 
     @Override
     public ComplaintDetectInfo getDetectById(Integer detectId) {
@@ -173,18 +177,27 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
     public int updateDetectById(ComplaintDetectInfo record,String[] imgs) {
         //判断售后流程
 
-        if(record.getCustomerId() == null){
+        /*if(record.getCustomerId() == null){
             if(record.getDetectRenovation() == 1){
                 record.setDetectState(20);//待翻新入库
             }else{
                 record.setDetectState(22);//不能翻新,待报废
             }
-        }else{
-            CmRelation cmRelation = new CmRelation();
-            cmRelation.setCustomerId(record.getCustomerId());
-            cmRelation = customerInfoMapper.getCmRelationInfo(cmRelation);
-            ProcMethod procMethod = procMethodMapper.getProcMethodById(cmRelation.getProcMethodId());
-            switch (cmRelation.getProcTypeId()){
+        }else{*/
+            ProcMethod procMethod;
+            Integer procTypeId;
+            //判断是签收生成还是手动添加
+            ComplaintDetectInfo complaintDetectInfo  = complaintDetectInfoMapper.getDetectById(record.getDetectId());
+            if(complaintDetectInfo.getDetectSource() == 2){//手动添加
+                procMethod = procMethodMapper.getProcMethodById(complaintDetectInfo.getMethodId());
+            }else{
+                CmRelation cmRelation = new CmRelation();
+                cmRelation.setCustomerId(record.getCustomerId());
+                cmRelation = customerInfoMapper.getCmRelationInfo(cmRelation);
+                procMethod = procMethodMapper.getProcMethodById(cmRelation.getProcMethodId());
+            }
+            procTypeId = procMethod.getProcTypeId();
+            switch (procTypeId){
                 case 3://维修
                     if(procMethod.getProcMethodIsCharge() == 0){//待定
                         if(record.getIsMaintenance() == 1){
@@ -211,18 +224,18 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
                     //查询维修编号
                     ComplaintDetectInfo info = complaintDetectInfoMapper.getDetectById(record.getDetectId());
                     //客诉状态为换货或退货时完成检测需要短信通知维修人员
-                    if(cmRelation.getProcTypeId() == 2){//换货
+                    if(procTypeId == 2){//换货
                         text = MessageFormat.format(SmsConfig.CUSTOMER_EXCHANGE, info.getDetectNumber(),processingResults);
                     }
-                    if(cmRelation.getProcTypeId() == 4){//退货
+                    if(procTypeId == 4){//退货
                         text = MessageFormat.format(SmsConfig.CUSTOMER_RETURN, info.getDetectNumber(),processingResults);
                     }
-                    if(cmRelation.getProcTypeId() == 2 || cmRelation.getProcTypeId() == 4){
+                    if(procTypeId == 2 || procTypeId == 4){
                         String result = smsService.sendOtherCMS(SmsConfig.CUSTOMER_PHONE, text);
                         logger.info("给 " + SmsConfig.CUSTOMER_PHONE + " 手机用户发送短信:" + text+"发送完成检测结果("+processingResults+"):"+result);
                     }
             }
-        }
+        /*}*/
         try {
         //封装检测信息
         //检测现象
@@ -287,6 +300,18 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
                     }
                 }
             }
+            if(complaintDetectInfo.getDetectSource() == 2){//手动添加需要给业务员发送短信
+                //发送短信通知维修检测人员
+                if(record.getDetectState() == 30 || record.getDetectState() == 34|| record.getDetectState() == 38){
+                    String text = MessageFormat.format(SmsConfig.NOTIFY_SALESMAN, complaintDetectInfo.getDetectName()+complaintDetectInfo.getDetectTel(), ResultInfo.DETECT_MSG+complaintDetectInfo.getDetectId());
+                    Admin admin = new Admin();
+                    admin.setAdminId(complaintDetectInfo.getSalesmanAdminId());
+                    admin = sysMapper.get(admin);
+                    String result = smsService.sendOtherCMS(admin.getAdminTel(), text);
+                    logger.info("给 " + complaintDetectInfo.getDetectTel() + " 手机用户发送短信:" + text+"发送通知业务员选择处理方式:"+result+"维修id:"+record.getDetectId());
+                }
+
+            }
         }catch (Exception e){
             throw new RuntimeException("完成检测失败");
         }
@@ -447,6 +472,114 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
         return false;
     }
 
+
+    @Transactional
+    @Override
+    public boolean salesmanConfirm(ComplaintDetectInfo detectInfo) {
+        ComplaintDetectInfo detect = complaintDetectInfoMapper.getDetectById(detectInfo.getDetectId());
+        if(detect.getDetectState() != 30 && detect.getDetectState() != 34 && detect.getDetectState() != 38){
+            return false;
+        }
+        //计算待维修完成时间
+        Calendar date = Calendar.getInstance();
+        date.setTime(new Date());
+        boolean fl = false;
+        for (int i = 1 ; i <= 5; i++){
+            date.set(Calendar.DATE, date.get(Calendar.DATE) + i);
+            int week = date.get(Calendar.DAY_OF_WEEK);//1--7的值,对应:星期日,星期一,星期二,星期三....星期六
+            if(week == 1){
+                fl = true;
+            }
+            date.set(Calendar.DATE, date.get(Calendar.DATE) - i);
+        }
+        if(fl){
+            date.set(Calendar.DATE, date.get(Calendar.DATE) + 6);
+        }else{
+            date.set(Calendar.DATE, date.get(Calendar.DATE) + 5);
+        }
+
+        switch (detectInfo.getDetectState()){
+            case 30:
+                if(detectInfo.getDetectProcessingResults() == 1){//付费维修
+                    detectInfo.setDetectState(31);//同意付费维修
+                    detectInfo.setCompleteCutTime(date.getTime());
+                }
+                if(detectInfo.getDetectProcessingResults() == 3 || detectInfo.getDetectProcessingResults() == 4){//退货、换货
+                    if(detect.getDetectRenovation() == 1){
+                        detectInfo.setDetectState(20);//待翻新
+                    }else{
+                        detectInfo.setDetectState(22);//待报废
+                    }
+                }
+                if(detectInfo.getDetectProcessingResults() == 5){//原机退回
+                    detectInfo.setDetectState(33);//
+                }
+                break;
+            case 34:
+                detectInfo.setDetectState(35);
+                detectInfo.setCompleteCutTime(date.getTime());
+                break;
+            case 38:
+                if(detectInfo.getDetectProcessingResults() == 1){//付费维修
+                    detectInfo.setDetectState(31);//同意付费维修
+                    detectInfo.setCompleteCutTime(date.getTime());
+                }
+                if(detectInfo.getDetectProcessingResults() == 2){//免费维修
+                    detectInfo.setDetectState(35);//同意免费维修
+                    detectInfo.setCompleteCutTime(date.getTime());
+                }
+                if(detectInfo.getDetectProcessingResults() == 3 || detectInfo.getDetectProcessingResults() == 4){//退货、换货
+                    if(detect.getDetectRenovation() == 1){
+                        detectInfo.setDetectState(20);//待翻新
+                    }else{
+                        detectInfo.setDetectState(22);//待报废
+                    }
+                }
+                if(detectInfo.getDetectProcessingResults() == 5){//原机退回
+                    detectInfo.setDetectState(37);//原机退回
+                }
+                break;
+        }
+
+        try {
+            if(complaintDetectInfoMapper.updateDetectById(detectInfo) > 0){
+                //添加业务员操作记录
+                TreatmentRecordLog log = new TreatmentRecordLog();
+                log.setDetectId(detectInfo.getDetectId());
+                log.setRecordAdminId(detectInfo.getSalesmanAdminId());
+                log.setRecordDesc(detectInfo.getDetectCustomerDesc());
+                log.setRecordProcessingResults(detectInfo.getDetectProcessingResults());
+                complaintDetectInfoMapper.addTreatmentRecordLog(log);
+                //发送确认短信
+                String results = "";
+                switch (detectInfo.getDetectProcessingResults()){
+                    case 1:
+                        results = "付费维修";
+                        break;
+                    case 2:
+                        results = "免费维修";
+                        break;
+                    case 3:
+                        results = "退货";
+                        break;
+                    case 4:
+                        results = "换货";
+                        break;
+                    case 5:
+                        results = "原机退回";
+                        break;
+                }
+                String text = MessageFormat.format(SmsConfig.CUSTOMER_CONFIRM, detect.getDetectNumber(),results);
+                String result = smsService.sendOtherCMS(SmsConfig.CUSTOMER_PHONE, text);
+                logger.info("给 " + SmsConfig.CUSTOMER_PHONE + " 手机用户发送短信:" + text+"发送结果:"+result);
+                return true;
+            }
+        }catch (Exception e){
+            throw new RuntimeException("确认处理失败");
+        }
+        return false;
+    }
+
     @Override
     public List<ComplaintDetectImg> listDetectImg(Integer detectId) {
         return complaintDetectInfoMapper.listDetectImg(detectId);

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

@@ -59,7 +59,16 @@
       cd.scrap_completion_time scrapCompletionTime,
       qd.describe_content describeContent,
       qd.describe_handle_desc describeHandleDesc,
-      sa.admin_name adminName
+      sa.admin_name adminName,
+      cs.signclosed_is_whetherLess signclosedIsWhetherLess,
+      cd.salesman_admin_id salesmanAdminId,
+      cd.detect_name detectName,
+      cd.detect_tel detectTel,
+      cd.question_id questionId,
+      cd.method_id methodId,
+      cd.detect_source detectSource,
+      cq.question_name questionName,
+      cq.question_profile questionProfile
     from tb_rst_complaint_detect cd
     LEFT JOIN tb_rst_cm_question_describe qd on cd.customer_id = qd.customer_id
     LEFT JOIN tb_rst_product_info pi ON cd.product_id = pi.product_id
@@ -75,6 +84,7 @@
     LEFT JOIN tb_rst_address_city ac ON cs.signclosed_addr_city = ac.city_id
     LEFT JOIN tb_rst_address_district ad on ad.district_id = cs.signclosed_addr_area
     LEFT JOIN tb_rst_sys_admin sa on c.admin_id = sa.admin_id
+    LEFT JOIN tb_rst_cm_complaint_question cq on cq.question_id = cd.question_id
     where detect_id = #{detectId,jdbcType=INTEGER}
     GROUP BY c.customer_id
   </select>
@@ -169,7 +179,13 @@
     qd.describe_content describeContent,
     qd.describe_handle_desc describeHandleDesc,
     sa.admin_name adminName,
-    cs.signclosed_is_whetherLess signclosedIsWhetherLess
+    cs.signclosed_is_whetherLess signclosedIsWhetherLess,
+    cd.salesman_admin_id salesmanAdminId,
+    cd.detect_name detectName,
+    cd.detect_tel detectTel,
+    cd.question_id questionId,
+    cd.method_id methodId,
+    cd.detect_source detectSource
     from tb_rst_complaint_detect cd
     LEFT JOIN tb_rst_product_info pi ON cd.product_id = pi.product_id
     LEFT JOIN tb_rst_cm_question_describe qd on cd.customer_id = qd.customer_id
@@ -423,6 +439,24 @@
       <if test="scrapCompletionTime != null and scrapCompletionTime != ''" >
         scrap_completion_time = #{scrapCompletionTime},
       </if>
+      <if test="salesmanAdminId != null and salesmanAdminId != ''" >
+        salesman_admin_id = #{salesmanAdminId},
+      </if>
+      <if test="detectName != null" >
+        detect_name = #{detectName},
+      </if>
+      <if test="detectTel != null" >
+        detect_tel = #{detectTel},
+      </if>
+      <if test="questionId != null" >
+        question_id = #{questionId},
+      </if>
+      <if test="methodId != null" >
+        method_id = #{methodId},
+      </if>
+      <if test="detectSource != null" >
+        detect_source = #{detectSource}
+      </if>
     </set>
     where
         detect_id = #{detectId,jdbcType=INTEGER}
@@ -460,7 +494,13 @@
     detect_is_refurbishing,
     maintenance_results,
     detect_number,
-    maintenance_cut_time
+    maintenance_cut_time,
+    salesman_admin_id,
+    detect_name,
+    detect_tel,
+    question_id,
+    method_id,
+    detect_source
     )
     values
       (
@@ -493,7 +533,13 @@
       #{detectIsRefurbishing},
       #{maintenanceResults},
       #{detectNumber},
-      #{maintenanceCutTime}
+      #{maintenanceCutTime},
+      #{salesmanAdminId},
+      #{detectName},
+      #{detectTel},
+      #{questionId},
+      #{methodId},
+      #{detectSource}
       )
   </insert>
 
@@ -652,7 +698,7 @@
       sum(CASE WHEN (detect_state in(33,37) and detect_placeorder = 1) then 1 else 0 end) AS placeOrderNum,
       sum(CASE WHEN (detect_state in(32,36) and detect_placeorder = 1 AND maintenance_results = 1) then 1 else 0 end) AS detectplaceOrderNum,
       sum(CASE WHEN (maintenance_cut_time &lt; now() AND cpt.proc_type_id = 3 and detect_placeorder = 1 and detect_state = 1) then 1 else 0 end) AS maintenanceCutTimeNum,
-      sum(CASE WHEN (complete_cut_time &lt; now() AND cpt.proc_type_id = 3 and detect_placeorder = 1 and detect_state in(32,36)) then 1 else 0 end) AS completeCutTimeNum
+      sum(CASE WHEN (complete_cut_time &lt; now() AND cpt.proc_type_id = 3 and detect_placeorder = 1 and detect_state != 32 AND detect_state != 36) then 1 else 0 end) AS completeCutTimeNum
       FROM
       tb_rst_complaint_detect cd
       LEFT JOIN tb_rst_cm_customer_info ci ON ci.customer_id = cd.customer_id
@@ -799,6 +845,7 @@
         tb_rst_complaint_detect
     WHERE
         to_days(NOW( ))-to_days(maintenance_cut_time) = -1
+        AND detect_state = 1
   </select>
 
   <select id="listCompleteCutNotice" resultType="ComplaintDetectInfo">
@@ -808,5 +855,6 @@
         tb_rst_complaint_detect
     WHERE
         to_days(NOW( ))-to_days(complete_cut_time) = -1
+        AND detect_state in(31,35)
   </select>
 </mapper>

+ 2 - 0
watero-rst-service/src/main/java/com/iamberry/rst/util/SmsConfig.java

@@ -78,6 +78,7 @@ public class SmsConfig {
     public static String CUSTOMER_EXCHANGE="";
     public static String CUSTOMER_RETURN="";
     public static String CUSTOMER_CONTACT="";
+    public static String NOTIFY_SALESMAN="";
 
     /* 维修即将超时通知短信 */
     public static String DETECTION_TIMEOUT_NOTIFICATION="";
@@ -133,6 +134,7 @@ public class SmsConfig {
             CUSTOMER_RETURN=pro.getProperty("CUSTOMER_RETURN");
             CUSTOMER_CONTACT=pro.getProperty("CUSTOMER_CONTACT");
             DETECTION_TIMEOUT_NOTIFICATION=pro.getProperty("DETECTION_TIMEOUT_NOTIFICATION");
+            NOTIFY_SALESMAN=pro.getProperty("NOTIFY_SALESMAN");
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 100 - 22
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminDetectController.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.controllers.cm;
 
 import com.iamberry.rst.core.cm.CompanyInfo;
+import com.iamberry.rst.core.cm.ComplaintQuestionInfo;
 import com.iamberry.rst.core.cm.SalesOrder;
 import com.iamberry.rst.core.fm.*;
 import com.iamberry.rst.core.order.Product;
@@ -17,9 +18,8 @@ import com.iamberry.rst.faces.fm.ComplaintDetectInfoService;
 import com.iamberry.rst.faces.fm.ComplaintSignclosedInfoService;
 import com.iamberry.rst.faces.fm.ComplaintSignclosedProductInfoService;
 import com.iamberry.rst.faces.product.ProductService;
-import com.iamberry.rst.service.fm.mapper.ComplaintSignclosedInfoMapper;
-import com.iamberry.rst.util.CustomerCommonUtil;
-import com.iamberry.rst.util.ProduceNoUtil;
+import com.iamberry.rst.service.cm.mapper.ComplaintQuestionInfoMapper;
+import com.iamberry.rst.service.sys.mapper.SysMapper;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.GenerateKeyUtil;
 import com.iamberry.rst.utils.StitchAttrUtil;
@@ -67,6 +67,10 @@ public class AdminDetectController {
     private SalesOrderService salesOrderService;
     @Autowired
     private GenerateKeyUtil generateKeyUtil;
+    @Autowired
+    private ComplaintQuestionInfoMapper complaintQuestionInfoMapper;
+    @Autowired
+    private SysMapper sysMapper;
     /**
      * 跳转到添加检测记录页面
      *
@@ -86,6 +90,17 @@ public class AdminDetectController {
         //获取所有维修内容
         DetectionBasis detectionBasis = new DetectionBasis();
         List<DetectionBasis> detectionBasisList = complaintDetectInfoService.listDetectionBasis(detectionBasis);
+        //查询客诉问题
+        ComplaintQuestionInfo complaintQuestionInfo = new ComplaintQuestionInfo();
+        complaintQuestionInfo.setDetectComplaintType(1);
+        List<ComplaintQuestionInfo> listComplaintQuestionInfo = complaintQuestionInfoMapper.listComplaintQuestionInfo(complaintQuestionInfo);
+        //查询业务员
+        Admin admin = new Admin();
+        admin.setAdminDept(15);
+        List<Admin> listAdmin = sysMapper.listAdmin(admin);
+
+        mv.addObject("listAdmin",listAdmin);
+        mv.addObject("listComplaintQuestionInfo",listComplaintQuestionInfo);
         mv.addObject("detectionBasisList",detectionBasisList);
         List<CompanyInfo> companyInfoList =  companyInfoService.listCompanyInfo(new CompanyInfo());
         mv.addObject("companyInfoList",companyInfoList);
@@ -179,6 +194,7 @@ public class AdminDetectController {
         }
 
         detectInfo.setMaintenanceCutTime(date.getTime());
+        detectInfo.setDetectSource(2);
 
         if(complaintDetectInfoService.insert(detectInfo) > 0){
             msg.setResultCode(200);
@@ -191,25 +207,6 @@ public class AdminDetectController {
     }
 
     /**
-     * 跳转到添加检测备注页面
-     *
-     * @return
-     */
-    /*@RequiresPermissions("info:update:info")
-    @RequestMapping(value = "/to_add_remark")
-    public ModelAndView toAddRemark(HttpServletRequest request) {
-        ModelAndView mv = new ModelAndView("cm/inspection/add_remark");
-        String detectItemId = request.getParameter("detectItemId");
-        if(detectItemId == null || detectItemId.equals("")){
-            return mv;
-        }
-        ComplaintDetectItem detectItem = complaintDetectInfoService.getDetectItemById(Integer.valueOf(detectItemId));
-        mv.addObject("detectItemId",detectItemId);
-        mv.addObject("detectItem",detectItem);
-        return mv;
-    }*/
-
-    /**
      * 跳转到添加维修记录页面
      *
      * @return
@@ -319,6 +316,56 @@ public class AdminDetectController {
     }
 
     /**
+     * 获取检测详情
+     *
+     * @return
+     */
+    @RequiresPermissions("info:update:info")
+    @RequestMapping(value = "/get_detail")
+    public ResponseJson getDetail(HttpServletRequest request) {
+        String detectId = request.getParameter("detectId");
+        ResponseJson msg = new ResponseJson();
+        if(detectId == null || detectId.equals("")){
+            msg.setResultCode(500);
+            msg.setReturnCode(500);
+        }
+        ComplaintDetectInfo detectinfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId));
+        List<ComplaintDetectImg> imgList = complaintDetectInfoService.listDetectImg(Integer.valueOf(detectId));
+        List<MaterialItem> listMaterialItem = complaintDetectInfoService.listMaterialItem(Integer.valueOf(detectId));
+        List<QcInfo> listQcInfo = complaintDetectInfoService.listQcInfo(Integer.valueOf(detectId));
+        List<TreatmentRecordLog> listTreatmentRecordLog = complaintDetectInfoService.listTreatmentRecordLog(Integer.valueOf(detectId));
+        if(detectinfo.getSalesOrderId() != null){
+            SalesOrder salesOrder = salesOrderService.getSalesOrderByOrderId(detectinfo.getSalesOrderId());
+            msg.addResponseKeyValue("salesOrder",salesOrder);
+        }
+        DetectionItem detectionItem = new DetectionItem();
+        detectionItem.setDetectId(Integer.valueOf(detectId));
+        //查询检测现象
+        detectionItem.setConfigType(1);
+        msg.addResponseKeyValue("detectPhenomenonList",complaintDetectInfoService.listDetectionItem(detectionItem));
+        //查询故障原因
+        detectionItem.setConfigType(2);
+        msg.addResponseKeyValue("detectFailureCauseList",complaintDetectInfoService.listDetectionItem(detectionItem));
+        //查询判定结果
+        detectionItem.setConfigType(3);
+        msg.addResponseKeyValue("detectResultsList",complaintDetectInfoService.listDetectionItem(detectionItem));
+        //查询故障指向
+        detectionItem.setConfigType(4);
+        msg.addResponseKeyValue("detectPointList",complaintDetectInfoService.listDetectionItem(detectionItem));
+        //查询原因分析
+        detectionItem.setConfigType(5);
+        msg.addResponseKeyValue("detectNalysisList",complaintDetectInfoService.listDetectionItem(detectionItem));
+        msg.addResponseKeyValue("listTreatmentRecordLog",listTreatmentRecordLog);
+        msg.addResponseKeyValue("listQcInfo",listQcInfo);
+        msg.addResponseKeyValue("listMaterialItem",listMaterialItem);
+        msg.addResponseKeyValue("detectinfo",detectinfo);
+        msg.addResponseKeyValue("imgList",imgList);
+        msg.setResultCode(200);
+        msg.setReturnCode(200);
+        return msg;
+    }
+
+    /**
      * 跳转到修改检测页面
      *
      * @return
@@ -770,6 +817,37 @@ public class AdminDetectController {
     }
 
     /**
+     * 业务员确认处理结果
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("complete:update:complete")
+    @ResponseBody
+    @RequestMapping("/salesman_confirm")
+    public ResponseJson salesmanConfirm(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
+        ResponseJson msg = new ResponseJson();
+        if(detectInfo == null){
+            msg.setResultCode(500);
+            msg.setReturnCode(500);
+            return msg;
+        }
+        if(detectInfo.getDetectId() == null || "".equals(detectInfo.getDetectId())){
+            msg.setResultCode(500);
+            msg.setReturnCode(500);
+            return msg;
+        }
+        if (!complaintDetectInfoService.salesmanConfirm(detectInfo)) {
+            msg.setResultCode(500);
+            msg.setReturnCode(500);
+        } else {
+            msg.setResultCode(200);
+            msg.setReturnCode(200);
+        }
+        return msg;
+    }
+
+    /**
      * 查询维修信息条数
      * @param request
      * @param res

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

@@ -68,6 +68,7 @@ CUSTOMER_EXCHANGE=\u3010\u7231\u8d1d\u6e90RST\u3011{0}\u8bf7\u5f00\u59cb{1}\uff0
 CUSTOMER_RETURN=\u3010\u7231\u8d1d\u6e90RST\u3011{0}\u8bf7\u5f00\u59cb{1}\uff0c\u6b64\u4e3a\u9000\u8d27\u673a\u5668\uff0c\u8bf7\u5f00\u59cb\u5904\u7406\uff1b
 CUSTOMER_CONTACT=\u3010\u7231\u8d1d\u6e90RST\u3011{0}\u5ba2\u670d\u5df2\u7ecf\u786e\u8ba4\uff0c\u7ef4\u4fee\u7f16\u53f7\u4e3a{1}\uff0c\u8bf7\u6253\u5370\u6b64\u673a\u5668\u7ef4\u4fee\u5361\u5e76\u5f00\u59cb\u68c0\u6d4b\uff1b
 DETECTION_TIMEOUT_NOTIFICATION=\u3010\u7231\u8d1d\u6e90RST\u3011{0}\u5373\u5c06{1}\uff0c\u622a\u6b62\u65e5\u671f\uff1a{2}\uff0c\u5982\u5df2\u68c0\u6d4b\u5b8c\u6210\u8bf7\u5c3d\u5feb\u5f55\u5165\u5230\u7cfb\u7edf
+NOTIFY_SALESMAN=\u3010\u7231\u8d1d\u6e90RST\u3011\u60a8\u5ba2\u6237{0}\u7684\u673a\u5668\u5df2\u7ecf\u68c0\u6d4b\u5b8c\u6210\uff0c\u9700\u8981\u60a8\u786e\u8ba4\u5982\u4f55\u5904\u7406\u3002\u70b9\u51fb\u67e5\u770b\u68c0\u6d4b\u7ed3\u679c&\u786e\u8ba4\u5904\u7406\u65b9\u5f0f {1}
 #---SMS end---#
 
 # token

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

@@ -252,7 +252,7 @@
                                 <#if customer.beRefurbished??><#if customer.beRefurbished gt 0 >待翻新:<span class="c-red">${customer.beRefurbished}</span><br></#if></#if>
                                 <#if customer.beScrapped??><#if customer.beScrapped gt 0 >待报废:<span class="c-red">${customer.beScrapped}</span><br></#if></#if>
                                 <#if customer.beContact??><#if customer.beContact gt 0 >待联系:<span class="c-red">${customer.beContact}</span><br></#if></#if>
-                                <#if customer.completeMaintenanceNum??><#if customer.completeMaintenanceNum gt 0 >维修完成:<span class="c-success">${customer.completeMaintenanceNum}</span><br></#if></#if>
+                        <#if !customer.placeOrderNum??><#if customer.completeMaintenanceNum??><#if customer.completeMaintenanceNum gt 0 >维修完成:<span class="c-success">${customer.completeMaintenanceNum}</span><br></#if></#if></#if>
                                 <#if customer.beenScrappedNum??><#if customer.beenScrappedNum gt 0 >已报废:<span class="c-success">${customer.beenScrappedNum}</span><br></#if></#if>
                                 <#if customer.beenRenovatedNum??><#if customer.beenRenovatedNum gt 0 >已翻新:<span class="c-success">${customer.beenRenovatedNum}</span></#if></#if>
                             </td>

+ 148 - 105
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_detect.ftl

@@ -67,11 +67,55 @@
             </div>
         </div>
 
-        <div class="input-box">
+        <#--<div class="input-box">
             <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">客诉编号:</label>
             <div class="formControls col-xs-9 col-sm-9 skin-minimal" style="margin: 10px 0px;padding-left: 0;">
                 <input class="my-input" type="text" style="width:510px;"  name="customerId" id="customerId" placeholder="请输入客诉编号,如没有请留空"/>
             </div>
+        </div>-->
+    <div class="input-box">
+        <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;"><span class="c-red">*</span>客户问题:</label>
+        <div class="formControls col-xs-9 col-sm-9 skin-minimal" style="margin: 10px 0px;padding-left: 0;">
+            <select id="questionId" name="questionId" class="chosen" style="width: 93%;">
+                <option value="">请选择客户问题</option>
+                    <#if (listComplaintQuestionInfo?size > 0)>
+                        <#list listComplaintQuestionInfo as info>
+                                <option value="${info.questionId!""}">${info.questionName!""}</option>
+                        </#list>
+                    </#if>
+            </select>
+        </div>
+    </div>
+    <div class="input-box">
+        <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;"><span class="c-red">*</span>业务员:</label>
+        <div class="formControls col-xs-9 col-sm-9 skin-minimal" style="margin: 10px 0px;padding-left: 0;">
+            <select id="salesmanAdminId" name="salesmanAdminId" class="chosen" style="width: 93%;">
+                <option value="">请选择业务员</option>
+                    <#if (listAdmin?size > 0)>
+                        <#list listAdmin as info>
+                                <option value="${info.adminId!""}">${info.adminName!""}</option>
+                        </#list>
+                    </#if>
+            </select>
+        </div>
+    </div>
+        <div class="input-box">
+            <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;"><span class="c-red">*</span>客户信息:</label>
+            <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px 10px 0;padding-left: 0;">
+                <input class="my-input" type="text"  name="detectName" id="detectName" placeholder="请输入客户姓名或昵称" style="width: 146px;"/>
+
+                <input class="my-input" type="text"  name="detectTel" id="detectTel" placeholder="请输入客户电话或手机号码" style="width: 146px;"/>
+            </div>
+        </div>
+        <div class="input-box" id="updateDetect_3">
+            <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;"><span class="c-red">*</span>处理方式:</label>
+            <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px 10px 0;padding-left: 0;">
+
+                <select class="my-select" id="procTypeId" name="procTypeId"  style="width: 158px;">
+                </select>
+                <select class="my-select" id="procMethodId" name="methodId"  style="width: 158px;">
+                </select>
+            </div>
         </div>
         <div class="input-box">
             <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;"><span class="c-red">*</span>检测产品:</label>
@@ -93,114 +137,11 @@
                 </select>
             </div>
         </div>
-        <#--<div class="input-box">
-            <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;"><span class="c-red">*</span>检测日期:</label>
-            <div class="formControls col-xs-8 col-sm-8 skin-minimal" style="margin: 10px 0px;">
-                <input class="my-input" type="text" style="width: 78.5%;" name="itemDate" id="itemDate" onClick="WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d'})" placeholder="请选择检测日期" readonly="readonly"/>
-            </div>
-        </div>
-
-        <div class="input-box">
-            <label class="col-3 col-sm-3 huanhang" style="text-align: right;margin: 10px 0px;"><span class="c-red">*</span>检测结果:</label>
-            <div class="formControls col-xs-8 col-sm-8 skin-minimal huanhang" style="margin: 10px 0px;">
-                <div class="radio-box">
-                    <input type="radio" id="radio-3" name="maintenanceResults" value="1" checked/>
-                    <label for="radio-3">检测通过</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="radio-4" name="maintenanceResults" value="2"/>
-                    <label for="radio-4">检测未通过</label>
-                </div>
-            </div>
-        </div>
-        <div class="input-box" >
-            <label class="col-3 col-sm-3 huanhang"  style="text-align: right;margin: 10px 0px;"></label>
-            <div class="formControls col-xs-8 col-sm-8 skin-minimal" style="margin: 10px 0px;">
-                <input class="my-input" list="contentlist" type="text" style="width: 78.5%;" onchange="inputSelect()" name="content" id="content"  placeholder="输入关键字查询,如果没有请直接在问题简述填写"/>
-                <datalist id="contentlist">
-                    <#if (detectionBasisList?size > 0)>
-                        <#list detectionBasisList as detectionBasis>
-                            <option value="${detectionBasis.basisPhenomenon!""}" data-value="${detectionBasis.basisPhenomenon!""}"  data-id="${detectionBasis.basisId!""}">
-                        </#list>
-                    </#if>
-                </datalist>
-            </div>
-        </div>
-
-        <div class="input-box" >
-            <label class="col-3 col-sm-3 huanhang"  style="text-align: right;margin: 10px 0px;"><span class="c-red">*</span>工厂检测现象:</label>
-            <div class="formControls col-xs-8 col-sm-8 skin-minimal" style="margin: 10px 0px;">
-                    <textarea style="margin-left: 0%;" rows="3" cols="20" name="detectItemPhenomenon" id="detectItemPhenomenon" class="my-textarea" placeholder="工厂检测现象"></textarea>
-            </div>
-        </div>
-        <div class="input-box">
-            <label class="col-3 col-sm-3 huanhang"  style="text-align: right;margin: 10px 0px;"><span class="c-red">*</span>故障分类:</label>
-            <div class="formControls col-xs-8 col-sm-8 skin-minimal" style="margin: 10px 0px;">
-                <textarea style="margin-left: 0%;" rows="3" cols="20" name="detectItemClassification" id="detectItemClassification" class="my-textarea" placeholder="故障分类"></textarea>
-            </div>
-        </div>
-        <div class="input-box">
-            <label class="col-3 col-sm-3 huanhang"  style="text-align: right;margin: 10px 0px;"><span class="c-red">*</span>故障原因:</label>
-            <div class="formControls col-xs-8 col-sm-8 skin-minimal" style="margin: 10px 0px;">
-            <textarea style="margin-left: 0%;" rows="3" cols="20" name="detectItemFailureCause" id="detectItemFailureCause" class="my-textarea" placeholder="故障原因"></textarea>
-            </div>
-        </div>
-        <div class="input-box">
-            <label class="col-3 col-sm-3 huanhang"  style="text-align: right;margin: 10px 0px;"><span class="c-red">*</span>判定结果:</label>
-            <div class="formControls col-xs-8 col-sm-8 skin-minimal" style="margin: 10px 0px;">
-            <textarea style="margin-left: 0%;" rows="3" cols="20" name="detectItemResults" id="detectItemResults" class="my-textarea" placeholder="判定结果"></textarea>
-            </div>
-        </div>
-        <div class="input-box">
-            <label class="col-3 col-sm-3 huanhang"  style="text-align: right;margin: 10px 0px;"><span class="c-red">*</span>故障指向:</label>
-            <div class="formControls col-xs-8 col-sm-8 skin-minimal" style="margin: 10px 0px;">
-            <textarea style="margin-left: 0%;" rows="3" cols="20" name="detectItemPoint" id="detectItemPoint" class="my-textarea" placeholder="故障指向"></textarea>
-            </div>
-        </div>
-        <div class="input-box">
-            <label class="col-3 col-sm-3 huanhang"  style="text-align: right;margin: 10px 0px;"><span class="c-red">*</span>原因分析:</label>
-            <div class="formControls col-xs-8 col-sm-8 skin-minimal" style="margin: 10px 0px;">
-            <textarea style="margin-left: 0%;" rows="3" cols="20" name="detectItemNalysis" id="detectItemNalysis" class="my-textarea" placeholder="原因分析"></textarea>
-            </div>
-        </div>
-        <div class="input-box">
-            <label class="col-3 col-sm-3 huanhang"  style="text-align: right;margin: 10px 0px;"><span class="c-red">*</span>维修内容:</label>
-            <div class="formControls col-xs-8 col-sm-8 skin-minimal" style="margin: 10px 0px;">
-            <textarea style="margin-left: 0%;" rows="3" cols="20" name="detectItemContent" id="detectItemContent" class="my-textarea" placeholder="维修内容"></textarea>
-            </div>
-        </div>
-        <div class="input-box">
-            <label class="col-3 col-sm-3 huanhang" style="text-align: right;"><span class="c-red">*</span>是否维修:</label>
-            <div class="formControls col-xs-8 col-sm-8 skin-minimal">
-                <div class="radio-box">
-                    <input type="radio" id="radio-5" name="isMaintenance" value="1" checked/>
-                    <label for="radio-5">需要维修</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="radio-6" name="isMaintenance" value="2"/>
-                    <label for="radio-6">不需要维修</label>
-                </div>
-            </div>
-        </div>
-        &lt;#&ndash;<div class="input-box">
-            <label class="col-3 col-sm-3 huanhang" style="text-align: right;margin: 10px 0px;"><span class="c-red">*</span>是否已转入:</label>
-            <div class="formControls col-xs-7 col-sm-7 skin-minimal" style="margin: 10px 0px;">
-                <div class="radio-box">
-                    <input type="radio" id="radio-7" name="detectRevolutionProduced" value="2" checked/>
-                    <label for="radio-7">已转入维修</label>
-                </div>
-                 <div class="radio-box" style="margin-left: -4.1%;">
-                    <input type="radio" id="radio-8" name="detectRevolutionProduced" value="1"/>
-                     <label for="radio-8">未转入维修</label>
-                </div>
-        </div>&ndash;&gt;
-        </div>
--->
         <div class="input-box" >
             <label class="form-label col-3 col-sm-3 huanhang"  style="text-align: right;">备注信息:</label>
             <div class="formControls col-xs-9 col-sm-9">
                 <div class="radio-box">
-                    <textarea rows="3" style="width: 500px;margin-left: -15px;margin-top: 8px;" cols="20" name="detectItemDesc" id="detectItemDesc" class="my-textarea" placeholder="请输入备注!"></textarea>
+                    <textarea rows="3" style="width: 410px;margin-left: -15px;margin-top: 8px;" cols="20" name="detectItemDesc" id="detectItemDesc" class="my-textarea" placeholder="请输入备注!"></textarea>
                 </div>
             </div>
         </div>
@@ -211,6 +152,76 @@
 </article>
 <script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
 <script type="text/javascript">
+    /**
+     * 客诉处理方式回显 state
+     */
+    procType();
+
+    $("#procTypeId").change(function (){
+        var procTypeId = parseInt($(this).val());
+        procMethod(procTypeId);
+    });
+    function procType(){
+        var procTypeId;
+        $.ajax({
+            cache: true,
+            type: "POST",
+            url: "${path}/admin/proc/type",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    var html = '';
+                    if (data.returnCode == 200) {
+                        for(var i=0;i<data.returnMsg.list.length;i++){
+                            listInfo = data.returnMsg.list[i];
+                            if(i == 1 ){
+                                procTypeId = listInfo.procTypeId;
+                            }
+                            if(listInfo.procTypeId === 2 || listInfo.procTypeId === 3 || listInfo.procTypeId === 4 ){
+                                html += '<option value="'+ listInfo.procTypeId +'">'+ listInfo.procTypeName +'</option>';
+                            }
+                        }
+                    }else{
+                        html = '';
+                    }
+                    $("[name='procTypeId']").html(html);
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        })
+        procMethod(procTypeId);
+    }
+    function procMethod(procTypeId){
+        $.ajax({
+            cache: true,
+            type: "POST",
+            data: {"procTypeId":procTypeId},
+            url: "${path}/admin/proc/method",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    var html = '';
+                    if (data.returnCode == 200) {
+                        for(var i=0;i<data.returnMsg.list.length;i++){
+                            listInfo = data.returnMsg.list[i];
+                            html += '<option value="'+ listInfo.procMethodId +'">'+ listInfo.procMethodName +'</option>';
+                        }
+                    }else{
+                        html = '';
+                    }
+                    $("#procMethodId").html(html);
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        })
+    }
+    /**
+     * 客诉处理方式回显 end
+     */
+
+
     function inputSelect(){
         var input_select=$("#content").val();
         var option_length=$("#contentlist option").length;
@@ -294,6 +305,16 @@
         
     function  add() {
 
+        var questionId = $("#questionId").val();
+        if( questionId == null || questionId == "" ){
+            layer.msg('请选择客户问题',{icon: 5,time:1000});
+            return;
+        }
+        var salesmanAdminId = $("#salesmanAdminId").val();
+        if( salesmanAdminId == null || salesmanAdminId == "" ){
+            layer.msg('请选择业务员',{icon: 5,time:1000});
+            return;
+        }
         /*var itemDate = $("#itemDate").val();
         if( itemDate == null || itemDate == "" ){
             layer.msg('请选择检测日期',{icon: 5,time:1000});
@@ -388,6 +409,28 @@
             }
         });
     }
+
+
+    $('.chosen').chosen({
+        no_results_text: "没有找到结果!",//搜索无结果时显示的提示
+        search_contains:true,   //关键字模糊搜索。设置为true,只要选项包含搜索词就会显示;设置为false,则要求从选项开头开始匹配
+        allow_single_deselect:true, //单选下拉框是否允许取消选择。如果允许,选中选项会有一个x号可以删除选项
+        disable_search: false, //禁用搜索。设置为true,则无法搜索选项。
+        disable_search_threshold: 0, //当选项少等于于指定个数时禁用搜索。
+        inherit_select_classes: true, //是否继承原下拉框的样式类,此处设为继承
+        placeholder_text_single: '选择国家', //单选选择框的默认提示信息,当选项为空时会显示。如果原下拉框设置了data-placeholder,会覆盖这里的值。
+        width: '320px', //设置chosen下拉框的宽度。即使原下拉框本身设置了宽度,也会被width覆盖。
+        max_shown_results: 1000, //下拉框最大显示选项数量
+        display_disabled_options: false,
+        single_backstroke_delete: false, //false表示按两次删除键才能删除选项,true表示按一次删除键即可删除
+        case_sensitive_search: false, //搜索大小写敏感。此处设为不敏感
+        group_search: false, //选项组是否可搜。此处搜索不可搜
+        include_group_label_in_selected: true //选中选项是否显示选项分组。false不显示,true显示。默认false。
+    });
+    $('.chosen2').chosen({
+        search_contains:false,
+        enable_split_word_search: true //分词搜索,选项词可通过空格或'[]'分隔。search_contains为false时才能看出效果
+    });
 </script>
 </body>
 </html>

Різницю між файлами не показано, бо вона завелика
+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_list.ftl