Parcourir la source

修改了更新,维修等方法

liuzhiwei il y a 7 ans
Parent
commit
d50b5afe3c
20 fichiers modifiés avec 1007 ajouts et 39 suppressions
  1. 1 1
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/BackGoodsService.java
  2. 1 1
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/NoreasonBackService.java
  3. 1 1
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/RenewedService.java
  4. 1 1
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/RepairService.java
  5. 7 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java
  6. 66 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/BackGoodsServiceImpl.java
  7. 66 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/NoreasonBackServiceImpl.java
  8. 64 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/RenewedServiceImpl.java
  9. 69 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/RepairServiceImpl.java
  10. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java
  11. 7 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ClosedFittingMapper.java
  12. 7 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ClosedProdcueMapper.java
  13. 10 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/closedFittingMapper.xml
  14. 10 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/closedProdcueMapper.xml
  15. 3 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml
  16. 31 16
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  17. 163 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_back_goods.ftl
  18. 165 4
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_noreason_back.ftl
  19. 165 3
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_renewed.ftl
  20. 165 4
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_repair.ftl

+ 1 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/BackGoodsService.java

@@ -13,5 +13,5 @@ public interface BackGoodsService {
      * @param record
      * @return
      */
-    Integer updateBackGoods(BackGoods record);
+    Integer updateBackGoods(BackGoods record, String closedProducts, String closedFittings);
 }

+ 1 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/NoreasonBackService.java

@@ -12,5 +12,5 @@ public interface NoreasonBackService {
      * @param record
      * @return
      */
-    Integer updateNoreasonBack(NoreasonBack record);
+    Integer updateNoreasonBack(NoreasonBack record, String closedProducts, String closedFittings);
 }

+ 1 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/RenewedService.java

@@ -23,5 +23,5 @@ public interface RenewedService {
      * @param record
      * @return
      */
-    Integer updateRenewedInfo(Renewed record);
+    Integer updateRenewedInfo(Renewed record, String closedProducts, String closedFittings);
 }

+ 1 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/RepairService.java

@@ -13,5 +13,5 @@ public interface RepairService {
      * @param repair
      * @return
      */
-    Integer updateRepairInfo(Repair repair);
+    Integer updateRepairInfo(Repair repair, String closedProducts, String closedFittings);
 }

+ 7 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java

@@ -83,4 +83,11 @@ public interface SalesOrderService {
      * @return
      */
     Integer updateReturnOrderList(JSONArray orderList, List<SalesOrder> list);
+
+    /**
+     * 查询订单数量
+     * @param salesOrder
+     * @return
+     */
+    Integer getOrderInfoCount(SalesOrder salesOrder);
 }

+ 66 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/BackGoodsServiceImpl.java

@@ -1,11 +1,19 @@
 package com.iamberry.rst.service.cm;
 
 import com.iamberry.rst.core.cm.BackGoods;
+import com.iamberry.rst.core.cm.ClosedFitting;
+import com.iamberry.rst.core.cm.ClosedProdcue;
 import com.iamberry.rst.faces.cm.BackGoodsService;
 import com.iamberry.rst.service.cm.mapper.BackGoodsMapper;
+import com.iamberry.rst.service.cm.mapper.ClosedFittingMapper;
+import com.iamberry.rst.service.cm.mapper.ClosedProdcueMapper;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 退货service
  * Created by liuzhiwei on 2017/11/8.
@@ -15,9 +23,65 @@ public class BackGoodsServiceImpl implements BackGoodsService {
 
     @Autowired
     private BackGoodsMapper backGoodsMapper;
+    @Autowired
+    private ClosedProdcueMapper closedProdcueMapper;
+    @Autowired
+    private ClosedFittingMapper closedFittingMapper;
 
     @Override
-    public Integer updateBackGoods(BackGoods record) {
-        return backGoodsMapper.updateBackGoods(record);
+    public Integer updateBackGoods(BackGoods record, String closedProducts, String closedFittings) {
+        int productNum = 1;
+        int fittingNum = 1;
+        List<ClosedProdcue> produceList = new ArrayList<ClosedProdcue>();
+        List<ClosedFitting> fittingList = new ArrayList<ClosedFitting>();
+        if (StringUtils.isNotEmpty(closedProducts)) {
+            ClosedProdcue closedProdcue = new ClosedProdcue();
+            closedProdcue.setRelationId(record.getBackGoodsId());
+            closedProdcue.setClosedProdcueType(6);
+            //删除原有寄回产品
+            int delNum = closedProdcueMapper.deleteProduce(closedProdcue);
+            //去掉最后一个","
+            closedProducts = closedProducts.substring(0,closedProducts.length()-1);
+            String[] products = closedProducts.split(",");
+            for (int i = 0;i < products.length;i++) {
+                String[] colors = products[i].split(":");
+                ClosedProdcue prodcue = new ClosedProdcue();
+                prodcue.setRelationId(record.getBackGoodsId());
+                prodcue.setClosedProdcueType(6);
+                prodcue.setProductId(Integer.parseInt(colors[0]));
+                prodcue.setColorId(Integer.parseInt(colors[1]));
+                prodcue.setClosedProdcueNumber(Integer.parseInt(colors[2]));
+                produceList.add(prodcue);
+            }
+            //批量添加寄回产品
+            productNum = closedProdcueMapper.insert(produceList);
+        }
+        if (StringUtils.isNotEmpty(closedFittings)) {
+            ClosedFitting closedFitting = new ClosedFitting();
+            closedFitting.setRelationId(record.getBackGoodsId());
+            closedFitting.setClosedFittingType(6);
+            //删除原有寄回配件信息
+            int delNum = closedFittingMapper.deleteFitting(closedFitting);
+            closedFittings = closedFittings.substring(0,closedFittings.length()-1);
+            String[] fittings = closedFittings.split(",");
+            for (int i = 0;i < fittings.length;i++) {
+                String[] fitting = fittings[i].split(":");
+                ClosedFitting cFitting = new ClosedFitting();
+                cFitting.setRelationId(record.getBackGoodsId());
+                cFitting.setClosedFittingType(6);
+                cFitting.setProductId(Integer.parseInt(fitting[0]));
+                cFitting.setFittingsId(Integer.parseInt(fitting[1]));
+                cFitting.setClosedFittingNumber(Integer.parseInt(fitting[2]));
+                fittingList.add(cFitting);
+            }
+            //批量添加寄回配件
+            fittingNum = closedFittingMapper.insert(fittingList);
+        }
+        int num = backGoodsMapper.updateBackGoods(record);
+        if (num > 0 && productNum > 0 && fittingNum > 0) {
+            return 1;
+        } else {
+            return 0;
+        }
     }
 }

+ 66 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/NoreasonBackServiceImpl.java

@@ -1,11 +1,19 @@
 package com.iamberry.rst.service.cm;
 
+import com.iamberry.rst.core.cm.ClosedFitting;
+import com.iamberry.rst.core.cm.ClosedProdcue;
 import com.iamberry.rst.core.cm.NoreasonBack;
 import com.iamberry.rst.faces.cm.NoreasonBackService;
+import com.iamberry.rst.service.cm.mapper.ClosedFittingMapper;
+import com.iamberry.rst.service.cm.mapper.ClosedProdcueMapper;
 import com.iamberry.rst.service.cm.mapper.NoreasonBackMapper;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Created by liuzhiwei on 2017/11/14.
  */
@@ -14,9 +22,65 @@ public class NoreasonBackServiceImpl implements NoreasonBackService {
 
     @Autowired
     private NoreasonBackMapper noreasonBackMapper;
+    @Autowired
+    private ClosedProdcueMapper closedProdcueMapper;
+    @Autowired
+    private ClosedFittingMapper closedFittingMapper;
 
     @Override
-    public Integer updateNoreasonBack(NoreasonBack record) {
-        return noreasonBackMapper.updateNoreasonBack(record);
+    public Integer updateNoreasonBack(NoreasonBack record, String closedProducts, String closedFittings) {
+        int productNum = 1;
+        int fittingNum = 1;
+        List<ClosedProdcue> produceList = new ArrayList<ClosedProdcue>();
+        List<ClosedFitting> fittingList = new ArrayList<ClosedFitting>();
+        if (StringUtils.isNotEmpty(closedProducts)) {
+            ClosedProdcue closedProdcue = new ClosedProdcue();
+            closedProdcue.setRelationId(record.getNoreasonBackId());
+            closedProdcue.setClosedProdcueType(7);
+            //删除原有寄回产品
+            int delNum = closedProdcueMapper.deleteProduce(closedProdcue);
+            //去掉最后一个","
+            closedProducts = closedProducts.substring(0,closedProducts.length()-1);
+            String[] products = closedProducts.split(",");
+            for (int i = 0;i < products.length;i++) {
+                String[] colors = products[i].split(":");
+                ClosedProdcue prodcue = new ClosedProdcue();
+                prodcue.setRelationId(record.getNoreasonBackId());
+                prodcue.setClosedProdcueType(7);
+                prodcue.setProductId(Integer.parseInt(colors[0]));
+                prodcue.setColorId(Integer.parseInt(colors[1]));
+                prodcue.setClosedProdcueNumber(Integer.parseInt(colors[2]));
+                produceList.add(prodcue);
+            }
+            //批量添加寄回产品
+            productNum = closedProdcueMapper.insert(produceList);
+        }
+        if (StringUtils.isNotEmpty(closedFittings)) {
+            ClosedFitting closedFitting = new ClosedFitting();
+            closedFitting.setRelationId(record.getNoreasonBackId());
+            closedFitting.setClosedFittingType(7);
+            //删除原有寄回配件信息
+            int delNum = closedFittingMapper.deleteFitting(closedFitting);
+            closedFittings = closedFittings.substring(0,closedFittings.length()-1);
+            String[] fittings = closedFittings.split(",");
+            for (int i = 0;i < fittings.length;i++) {
+                String[] fitting = fittings[i].split(":");
+                ClosedFitting cFitting = new ClosedFitting();
+                cFitting.setRelationId(record.getNoreasonBackId());
+                cFitting.setClosedFittingType(7);
+                cFitting.setProductId(Integer.parseInt(fitting[0]));
+                cFitting.setFittingsId(Integer.parseInt(fitting[1]));
+                cFitting.setClosedFittingNumber(Integer.parseInt(fitting[2]));
+                fittingList.add(cFitting);
+            }
+            //批量添加寄回配件
+            fittingNum = closedFittingMapper.insert(fittingList);
+        }
+        int num = noreasonBackMapper.updateNoreasonBack(record);
+        if (num > 0 && productNum > 0 && fittingNum > 0) {
+            return 1;
+        } else {
+            return 0;
+        }
     }
 }

+ 64 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/RenewedServiceImpl.java

@@ -1,12 +1,17 @@
 package com.iamberry.rst.service.cm;
 
 import com.iamberry.rst.core.cm.ClosedFitting;
+import com.iamberry.rst.core.cm.ClosedProdcue;
 import com.iamberry.rst.core.cm.Renewed;
 import com.iamberry.rst.faces.cm.RenewedService;
+import com.iamberry.rst.service.cm.mapper.ClosedFittingMapper;
+import com.iamberry.rst.service.cm.mapper.ClosedProdcueMapper;
 import com.iamberry.rst.service.cm.mapper.RenewedMapper;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -18,6 +23,10 @@ public class RenewedServiceImpl implements RenewedService {
 
     @Autowired
     private RenewedMapper renewedMapper;
+    @Autowired
+    private ClosedProdcueMapper closedProdcueMapper;
+    @Autowired
+    private ClosedFittingMapper closedFittingMapper;
 
     @Override
     public List<ClosedFitting> listClosedFitting(ClosedFitting closedFitting) {
@@ -25,7 +34,60 @@ public class RenewedServiceImpl implements RenewedService {
     }
 
     @Override
-    public Integer updateRenewedInfo(Renewed record) {
-        return renewedMapper.updateRenewedInfo(record);
+    public Integer updateRenewedInfo(Renewed record, String closedProducts, String closedFittings) {
+        int productNum = 1;
+        int fittingNum = 1;
+        List<ClosedProdcue> produceList = new ArrayList<ClosedProdcue>();
+        List<ClosedFitting> fittingList = new ArrayList<ClosedFitting>();
+        if (StringUtils.isNotEmpty(closedProducts)) {
+            ClosedProdcue closedProdcue = new ClosedProdcue();
+            closedProdcue.setRelationId(record.getRenewedId());
+            closedProdcue.setClosedProdcueType(3);
+            //删除原有寄回产品
+            int delNum = closedProdcueMapper.deleteProduce(closedProdcue);
+            //去掉最后一个","
+            closedProducts = closedProducts.substring(0,closedProducts.length()-1);
+            String[] products = closedProducts.split(",");
+            for (int i = 0;i < products.length;i++) {
+                String[] colors = products[i].split(":");
+                ClosedProdcue prodcue = new ClosedProdcue();
+                prodcue.setRelationId(record.getRenewedId());
+                prodcue.setClosedProdcueType(3);
+                prodcue.setProductId(Integer.parseInt(colors[0]));
+                prodcue.setColorId(Integer.parseInt(colors[1]));
+                prodcue.setClosedProdcueNumber(Integer.parseInt(colors[2]));
+                produceList.add(prodcue);
+            }
+            //批量添加寄回产品
+            productNum = closedProdcueMapper.insert(produceList);
+        }
+        if (StringUtils.isNotEmpty(closedFittings)) {
+            ClosedFitting closedFitting = new ClosedFitting();
+            closedFitting.setRelationId(record.getRenewedId());
+            closedFitting.setClosedFittingType(3);
+            //删除原有寄回配件信息
+            int delNum = closedFittingMapper.deleteFitting(closedFitting);
+            closedFittings = closedFittings.substring(0,closedFittings.length()-1);
+            String[] fittings = closedFittings.split(",");
+            for (int i = 0;i < fittings.length;i++) {
+                String[] fitting = fittings[i].split(":");
+                ClosedFitting cFitting = new ClosedFitting();
+                cFitting.setRelationId(record.getRenewedId());
+                cFitting.setClosedFittingType(3);
+                cFitting.setProductId(Integer.parseInt(fitting[0]));
+                cFitting.setFittingsId(Integer.parseInt(fitting[1]));
+                cFitting.setClosedFittingNumber(Integer.parseInt(fitting[2]));
+                fittingList.add(cFitting);
+            }
+            //批量添加寄回配件
+            fittingNum = closedFittingMapper.insert(fittingList);
+        }
+        //修改换新信息
+        int num = renewedMapper.updateRenewedInfo(record);
+        if (num > 0 && productNum > 0 && fittingNum > 0) {
+            return 1;
+        } else {
+            return 0;
+        }
     }
 }

+ 69 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/RepairServiceImpl.java

@@ -1,10 +1,19 @@
 package com.iamberry.rst.service.cm;
 
+import com.iamberry.rst.core.cm.ClosedFitting;
+import com.iamberry.rst.core.cm.ClosedProdcue;
 import com.iamberry.rst.core.cm.Repair;
 import com.iamberry.rst.faces.cm.RepairService;
+import com.iamberry.rst.service.cm.mapper.ClosedFittingMapper;
+import com.iamberry.rst.service.cm.mapper.ClosedProdcueMapper;
 import com.iamberry.rst.service.cm.mapper.RepairMapper;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 维修Service
@@ -15,9 +24,67 @@ public class RepairServiceImpl implements RepairService {
 
     @Autowired
     private RepairMapper repairMapper;
+    @Autowired
+    private ClosedProdcueMapper closedProdcueMapper;
+    @Autowired
+    private ClosedFittingMapper closedFittingMapper;
 
+    @Transactional
     @Override
-    public Integer updateRepairInfo(Repair repair) {
-        return repairMapper.updateRepairInfo(repair);
+    public Integer updateRepairInfo(Repair repair, String closedProducts, String closedFittings) {
+        int productNum = 1;
+        int fittingNum = 1;
+        List<ClosedProdcue> produceList = new ArrayList<ClosedProdcue>();
+        List<ClosedFitting> fittingList = new ArrayList<ClosedFitting>();
+        if (StringUtils.isNotEmpty(closedProducts)) {
+            ClosedProdcue closedProdcue = new ClosedProdcue();
+            closedProdcue.setRelationId(repair.getRepairId());
+            closedProdcue.setClosedProdcueType(4);
+            //删除原有寄回产品
+            int delNum = closedProdcueMapper.deleteProduce(closedProdcue);
+            //去掉最后一个","
+            closedProducts = closedProducts.substring(0,closedProducts.length()-1);
+            String[] products = closedProducts.split(",");
+            for (int i = 0;i < products.length;i++) {
+                String[] colors = products[i].split(":");
+                ClosedProdcue prodcue = new ClosedProdcue();
+                prodcue.setRelationId(repair.getRepairId());
+                prodcue.setClosedProdcueType(4);
+                prodcue.setProductId(Integer.parseInt(colors[0]));
+                prodcue.setColorId(Integer.parseInt(colors[1]));
+                prodcue.setClosedProdcueNumber(Integer.parseInt(colors[2]));
+                produceList.add(prodcue);
+            }
+            //批量添加寄回产品
+            productNum = closedProdcueMapper.insert(produceList);
+        }
+        if (StringUtils.isNotEmpty(closedFittings)) {
+            ClosedFitting closedFitting = new ClosedFitting();
+            closedFitting.setRelationId(repair.getRepairId());
+            closedFitting.setClosedFittingType(4);
+            //删除原有寄回配件信息
+            int delNum = closedFittingMapper.deleteFitting(closedFitting);
+            closedFittings = closedFittings.substring(0,closedFittings.length()-1);
+            String[] fittings = closedFittings.split(",");
+            for (int i = 0;i < fittings.length;i++) {
+                String[] fitting = fittings[i].split(":");
+                ClosedFitting cFitting = new ClosedFitting();
+                cFitting.setRelationId(repair.getRepairId());
+                cFitting.setClosedFittingType(4);
+                cFitting.setProductId(Integer.parseInt(fitting[0]));
+                cFitting.setFittingsId(Integer.parseInt(fitting[1]));
+                cFitting.setClosedFittingNumber(Integer.parseInt(fitting[2]));
+                fittingList.add(cFitting);
+            }
+            //批量添加寄回配件
+            fittingNum = closedFittingMapper.insert(fittingList);
+        }
+
+        int num = repairMapper.updateRepairInfo(repair);
+        if (num > 0 && productNum > 0 && fittingNum > 0) {
+            return 1;
+        } else {
+            return 0;
+        }
     }
 }

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java

@@ -313,4 +313,9 @@ public class SalesOrderServiceImpl implements SalesOrderService {
             salesOrderService.addOrderAndItem(salesOrder,itemList);
         }
     }
+
+    @Override
+    public Integer getOrderInfoCount(SalesOrder salesOrder) {
+        return salesOrderMapper.getOrderInfoCount(salesOrder);
+    }
 }

+ 7 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ClosedFittingMapper.java

@@ -20,4 +20,11 @@ public interface ClosedFittingMapper {
      * @return
      */
     List<ClosedFitting> listClosedFitting(ClosedFitting record);
+
+    /**
+     * 删除寄回配件
+     * @param record
+     * @return
+     */
+    Integer deleteFitting(ClosedFitting record);
 }

+ 7 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ClosedProdcueMapper.java

@@ -23,4 +23,11 @@ public interface ClosedProdcueMapper {
      * @return
      */
     List<ClosedProdcue> listclosedProdcue(ClosedProdcue record);
+
+    /**
+     * 删除寄回产品信息
+     * @param record
+     * @return
+     */
+    Integer deleteProduce(ClosedProdcue record);
 }

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

@@ -28,6 +28,16 @@
     </foreach>
   </insert>
 
+  <!-- 删除寄回配件 -->
+  <delete id="deleteFitting" parameterType="ClosedFitting">
+    delete from
+      tb_rst_closed_fitting
+    WHERE
+      relation_id = #{relationId}
+    AND
+      closed_fitting_type = #{closedFittingType}
+  </delete>
+
   <!-- 获取寄回配件集合 -->
   <select id="listClosedFitting" parameterType="ClosedFitting" resultType="ClosedFitting">
     select

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

@@ -34,6 +34,16 @@
     </foreach>
   </insert>
 
+  <!-- 删除寄回产品信息 -->
+  <delete id="deleteProduce" parameterType="ClosedProdcue">
+    delete from
+      tb_rst_closed_prodcue
+    where
+      relation_id = #{relationId}
+    and
+      closed_prodcue_type = #{closedProdcueType}
+  </delete>
+
   <update id="updateByPrimaryKeySelective" parameterType="ClosedProdcue" >
     update tb_rst_closed_prodcue
     <set >

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

@@ -204,6 +204,9 @@
       <if test="salesOrderId != null">
         and sales_orderId = #{salesOrderId}
       </if>
+      <if test="salesStatus !=null and salesStatus !=''">
+        AND sales_status = #{salesStatus}
+      </if>
     </where>
   </select>
 

+ 31 - 16
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -3,14 +3,13 @@ package com.iamberry.rst.controllers.cm;
 import com.iamberry.rst.core.cm.*;
 import com.iamberry.rst.core.order.*;
 import com.iamberry.rst.core.page.PagedResult;
-import com.iamberry.rst.core.pts.ProcessNode;
-import com.iamberry.rst.core.pts.ProduceProcess;
 import com.iamberry.rst.core.sys.Admin;
 import com.iamberry.rst.faces.cm.*;
 import com.iamberry.rst.faces.order.EfastOrderService;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sms.SmsService;
 import com.iamberry.rst.faces.sys.SysService;
+import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
 import com.iamberry.rst.util.SmsConfig;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.OrderNoUtil;
@@ -29,13 +28,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
-
 import javax.servlet.http.HttpServletRequest;
 import java.text.MessageFormat;
 import java.util.*;
 
-import static com.iamberry.rst.util.SmsConfig.CONFIRM_TEXT;
-
 /**
  * Created by wxm
  */
@@ -869,14 +865,20 @@ public class AdminCustomerController {
     @RequiresPermissions("customer:update:renewed")
     @RequestMapping("/update_renewed_info")
     public ResponseJson updateRenewedInfo(HttpServletRequest request, Renewed renewed) throws Exception {
+        String closedProducts = request.getParameter("closed_products");
+        String closedFittings = request.getParameter("closed_fittings");
+
         if (!StringUtils.isNotEmpty(renewed.getRenewedId().toString())) {
             return new ResponseJson(500, "该换新信息不能修改!", 500);
         }
         if (StringUtils.isNotEmpty(renewed.getRenewedBackPostage().toString())) {
             renewed.setRenewedBackPostage(renewed.getRenewedBackPostage().intValue() * 100);
         }
+        if (!StringUtils.isNotEmpty(renewed.getRenewedBackEfastOrderId())) {
+            return new ResponseJson(500, "请输入efast订单号!", 500);
+        }
         //修改换新信息
-        int num = renewedService.updateRenewedInfo(renewed);
+        int num = renewedService.updateRenewedInfo(renewed, closedProducts, closedFittings);
         if (num > 0) {
             return new ResponseJson(200, "修改成功!", 200);
         } else {
@@ -922,13 +924,6 @@ public class AdminCustomerController {
         if (repair == null) {
             return new ResponseJson(500, "该客诉没有维修信息!", 500);
         } else {
-            ClosedFitting closedFitting = new ClosedFitting();
-            closedFitting.setRelationId(repair.getRepairId());
-            //获取寄回配件集合
-            List<ClosedFitting> fittingList = renewedService.listClosedFitting(closedFitting);
-            if (fittingList != null && fittingList.size() > 0) {
-                repair.setClosedFittings(fittingList);
-            }
             ResponseJson rj = new ResponseJson(200, "查询成功", 200);
             rj.addResponseKeyValue("repair", repair);
             return rj;
@@ -950,6 +945,8 @@ public class AdminCustomerController {
         if (!StringUtils.isNotEmpty(repair.getRepairId().toString())) {
             return new ResponseJson(500, "该换新信息不能修改!", 500);
         }
+        String closedProducts = request.getParameter("closed_products");
+        String closedFittings = request.getParameter("closed_fittings");
         String provinceNumber = request.getParameter("repairProvinceNumber");
         String cityNumber = request.getParameter("repairCityNumber");
         String areaNumber = request.getParameter("repairAreaNumber");
@@ -965,8 +962,21 @@ public class AdminCustomerController {
         if (StringUtils.isNotEmpty(repair.getRepairBackPostage().toString())) {
             repair.setRepairBackPostage(repair.getRepairBackPostage().intValue() * 100);
         }
+        if (!StringUtils.isNotEmpty(repair.getRepairBackEfastOrderId())) {
+            return new ResponseJson(500, "请输入efast订单号!", 500);
+        }
+
+        /*SalesOrder order = new SalesOrder();
+        order.setSalesOrderStatus(1);
+        order.setSalesOrderId(repair.getRepairBackEfastOrderId());
+        int count = salesOrderService.getOrderInfoCount(order);
+        //判断efast订单是否可查出有效数据
+        if (count == 0) {
+            return new ResponseJson(500, "该efast订单号无效,请重新输入!", 500);
+        }*/
+
         //修改维修信息
-        int num = repairService.updateRepairInfo(repair);
+        int num = repairService.updateRepairInfo(repair,closedProducts,closedFittings);
         if (num > 0) {
             return new ResponseJson(200, "修改成功!", 200);
         } else {
@@ -1029,13 +1039,16 @@ public class AdminCustomerController {
     @RequiresPermissions("customer:update:backGoods")
     @RequestMapping("/update_back_goods")
     public ResponseJson updateBackGoods(HttpServletRequest request, BackGoods backGoods) throws Exception {
+        String closedProducts = request.getParameter("closed_products");
+        String closedFittings = request.getParameter("closed_fittings");
         if (!StringUtils.isNotEmpty(backGoods.getBackGoodsId().toString())) {
             return new ResponseJson(500, "该售后退货信息不能修改!", 500);
         }
         if (StringUtils.isNotEmpty(backGoods.getBackGoodsBackPostage().toString())) {
             backGoods.setBackGoodsBackPostage(backGoods.getBackGoodsBackPostage().intValue() * 100);
         }
-        int num = backGoodsService.updateBackGoods(backGoods);
+
+        int num = backGoodsService.updateBackGoods(backGoods, closedProducts, closedFittings);
         if (num > 0) {
             return new ResponseJson(200, "修改成功!", 200);
         } else {
@@ -1175,13 +1188,15 @@ public class AdminCustomerController {
     @RequiresPermissions("customer:update:noreason")
     @RequestMapping("/update_noreason")
     public ResponseJson updateNoreason(HttpServletRequest request, NoreasonBack noreasonBack) throws Exception {
+        String closedProducts = request.getParameter("closed_products");
+        String closedFittings = request.getParameter("closed_fittings");
         if (!StringUtils.isNotEmpty(noreasonBack.getNoreasonBackId().toString())) {
             return new ResponseJson(500, "该售后无理由退货信息不能修改!", 500);
         }
         if (StringUtils.isNotEmpty(noreasonBack.getNoreasonBackBackPostage().toString())) {
             noreasonBack.setNoreasonBackBackPostage(noreasonBack.getNoreasonBackBackPostage().intValue() * 100);
         }
-        int num = noreasonBackService.updateNoreasonBack(noreasonBack);
+        int num = noreasonBackService.updateNoreasonBack(noreasonBack, closedProducts, closedFittings);
         if (num > 0) {
             return new ResponseJson(200, "修改成功!", 200);
         } else {

+ 163 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_back_goods.ftl

@@ -19,6 +19,7 @@
         .select-box select{-webkit-appearance:none !important;background-color: transparent; appearance:none;padding-right: 25px;}
         .table-bg th{background-color: #e2f6ff;}
         .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
+        .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 20px;background-color: #32a3d8;color: #fff;}
     </style>
     <title></title>
 </head>
@@ -120,6 +121,24 @@
             </div>
             <div class="formControls col-10 col-sm-10">
                 <div id="backGoodsProduct" class="update-parts"></div>
+                <input type="hidden" id="closed_products" name="closed_products" />
+                <input type="hidden" id="closed_fittings" name="closed_fittings" />
+            </div>
+            <div class="formControls col-9 col-sm-9 text-c" id="produceSelect" style="padding-top: 10px;display: none;">
+                <div>
+                    <input type="text" oninput="showUpdateSendProduct();" onpropertychange="showUpdateSendProduct();" class="input-text" style="width: 100%" id="selectProcuct" name="selectProcuct" placeholder="请输入产品名称搜索">
+                </div>
+                <table class="table table-border table-bg table-bordered">
+                    <thead>
+                    <tr class="text-c">
+                        <th style="text-align: center;" width="60">产品名称</th>
+                        <th style="text-align: center;" width="60">产品颜色</th>
+                        <th style="text-align: center;" width="60">产品配件</th>
+                    </tr>
+                    </thead>
+                    <tbody id="addProduct">
+                    </tbody>
+                </table>
             </div>
         </div>
         <div class="row cl">
@@ -159,8 +178,150 @@
             increaseArea: '20%'
         });
         get_book_goods_info();
+        showUpdateSendProduct();
     });
 
+    /*显示所有产品及配件信息*/
+    function showUpdateSendProduct() {
+        var productList = getProduct() ; //所有产品
+        var html = "";
+        for(var i=0;i<productList.length;i++) {
+            var product = productList[i];
+            var produceFittings = product.fittingsList;  //获取该产品的所有配件
+            var colorList = product.colorList;  //该产品的所有颜色
+
+
+            var colorHtml = '';
+            if(colorList != null && colorList.length >0 ){
+                colorHtml += '<table style="height: 100%;">';
+                for(var j=0;j<colorList.length;j++){
+                    var number = "";
+                    var color = colorList[j];
+                    /*for(var k=0;k<orderItemList.length;k++){
+                        var item = orderItemList[k];
+                        if(item.itemColorId == color.colorId){
+                            number = item.itemNum;
+                        }
+                    }*/
+                    var fristInputStyle = "border-top: 1px solid #ddd;";
+                    if(color.colorProductId == product.productId) {
+                        colorHtml += '<tr >' +
+                                '         <td width="75" class="input-color-name" style="border-left: none;text-align: center;'+ fristInputStyle +'">' + color.colorName + '</td>' +
+                                '         <td width="25" style="'+ fristInputStyle +'">' +
+                                '             <input type="hidden" class="input-produce-id" value="' + color.colorProductId + '">' +
+                                '             <input type="hidden" class="input-color-id" value="' + color.colorId + '">' +
+                                '             <input type="hidden" class="input-produce-name" value="' + product.productName + '">' +
+                                '             <input type="text" class="input-text input-color-number number-input" style="width: 100%;" value="'+ number +'" placeholder="产品数量"  id="" name="" onkeyup="keyFun($(this))" onpaste="keyFun($(this))" >' +
+                                '         </td>' +
+                                '     </tr>';
+                        fristInputStyle = "";
+                    }
+
+                }
+                colorHtml += '</table>';
+            }else{
+                colorHtml += '<span>暂无该产品的颜色!<span>';
+            }
+
+            var produceFittingsHtml = '';
+            if(produceFittings != null && produceFittings.length > 0){
+                produceFittingsHtml += '<table style="height: 100%;">';
+                for(var m=0;m<produceFittings.length;m++){
+                    var produceFit = produceFittings[m];
+                    if(produceFit.productId == product.productId) {
+                        var fristInputStyle = "border-top: 1px solid #ddd;";
+                        produceFittingsHtml += '<tr >' +
+                                '         <td width="75" class="input-fittings-name" style="border-left: none;text-align: center; '+ fristInputStyle +'">' + produceFit.fittingsName +'</td>' +
+                                '         <td width="25" style="'+ fristInputStyle +'">' +
+                                '             <input type="hidden" class="input-produce-id" value="' + produceFit.productId + '">' +
+                                '             <input type="hidden" class="input-fittings-id" value="' + produceFit.fittingsId +'">' +
+                                '             <input type="text" class="input-text input-fittings-number" style="width: 100%;" value="'+ number +'" placeholder="配件数量" id="" name="" onkeyup="keyFun($(this))" onpaste="keyFun($(this))" >' +
+                                '         </td>' +
+                                '     </tr>';
+                        fristInputStyle = "";
+                    }
+                }
+                produceFittingsHtml += '</table>';
+            }else{
+                produceFittingsHtml += '<span>暂无产品配件!<span>';
+            }
+
+            var produceHtml = '<input type="hidden" value="'+ product.productId +'">' +
+                    '<span>'+  product.productName +'</span>';
+
+            html += ' <tr >' +
+                    '    <td width="70">'+ produceHtml +'</td>' +
+                    '    <td style="padding: 0px;text-align: center;">' +
+                    colorHtml +
+                    '   </td>' +
+                    '    <td style="padding: 0px;text-align: center;">' +
+                    produceFittingsHtml +
+                    '    </td>' +
+                    '</tr>';
+        }
+        html += '<tr><td colspan="3" style="text-align: center;"><button onClick="hideProductList();" class="btn btn-primary" type="button">确认</button></td></tr>'
+        $("#addProduct").html(html);
+    }
+
+    function showProductList() {
+        $('#produceSelect').show();
+    }
+
+    function hideProductList() {
+        var txt_product = '';
+        var color_numbers = '';
+        var fittings_numbers = '';
+        $("#addProduct").find(".input-color-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                var productId = $(this).parent().find(".input-produce-id").val();
+                var colorId = $(this).parent().find(".input-color-id").val();
+                var productName = $(this).parent().find(".input-produce-name").val();
+                //var colorName = $(this).parent().find(".input-color-name").val();
+                //封装更换的所有产品
+                color_numbers += productId + ':' + colorId + ":" + number + ",";
+                txt_product += '<span>'+ productName + '*' + number + '台</span>';
+            }
+        });
+        $("#addProduct").find(".input-fittings-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                var productId = $(this).parent().find(".input-produce-id").val();
+                var fittingsId = $(this).parent().find(".input-fittings-id").val();
+                var fittingsName = $(this).parent().parent().find(".input-fittings-name").html();
+                //var colorName = $(this).parent().find(".input-color-name").val();
+                //封装更换的所有产品
+                fittings_numbers += productId + ':' + fittingsId + ":" + number + ",";
+                txt_product += '<span>'+ fittingsName + '*' + number + '件</span>';
+            }
+        })
+        txt_product += '<button type="button" style="cursor:pointer; float: right;" class="my-btn-search" onclick="showProductList();">修改产品</button>';
+        $('#backGoodsProduct').html(txt_product);
+        $('#closed_products').val(color_numbers);
+        $('#closed_fittings').val(fittings_numbers);
+        $('#produceSelect').hide();
+    }
+
+    /*获取产品*/
+    function getProduct(){
+        var productList;
+        var productName = $("#selectProcuct").val();
+        $.ajax({
+            type: "POST",
+            data:{'productName':productName},
+            url: "${path}/admin/signclosed/select_product",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    productList = data.returnMsg.productList;
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+        return productList;
+    }
+
     /*获取售后退货信息*/
     function get_book_goods_info() {
         $.ajax({
@@ -210,6 +371,8 @@
                             backProduct += '<span>'+ this.fittingName + '*' + this.closedFittingNumber + '</span>';
                         })
                     }
+                    backProduct += '<button type="button" style="cursor:pointer; float: right;" class="my-btn-search" onclick="showProductList();">修改产品</button>';
+                    $('#backGoodsProduct').html(backProduct);
                 }
             },
             error: function(XmlHttpRequest, textStatus, errorThrown){

+ 165 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_noreason_back.ftl

@@ -18,6 +18,7 @@
         .select-box select{-webkit-appearance:none !important;background-color: transparent; appearance:none;padding-right: 25px;}
         .table-bg th{background-color: #e2f6ff;}
         .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
+        .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 20px;background-color: #32a3d8;color: #fff;}
     </style>
     <title></title>
 </head>
@@ -119,6 +120,24 @@
             </div>
             <div class="formControls col-10 col-sm-10">
                 <div id="noreasonBackProduct" class="update-parts"></div>
+                <input type="hidden" id="closed_products" name="closed_products" />
+                <input type="hidden" id="closed_fittings" name="closed_fittings" />
+            </div>
+            <div class="formControls col-9 col-sm-9 text-c" id="produceSelect" style="padding-top: 10px;display: none;">
+                <div>
+                    <input type="text" oninput="showUpdateSendProduct();" onpropertychange="showUpdateSendProduct();" class="input-text" style="width: 100%" id="selectProcuct" name="selectProcuct" placeholder="请输入产品名称搜索">
+                </div>
+                <table class="table table-border table-bg table-bordered">
+                    <thead>
+                    <tr class="text-c">
+                        <th style="text-align: center;" width="60">产品名称</th>
+                        <th style="text-align: center;" width="60">产品颜色</th>
+                        <th style="text-align: center;" width="60">产品配件</th>
+                    </tr>
+                    </thead>
+                    <tbody id="addProduct">
+                    </tbody>
+                </table>
             </div>
         </div>
         <div class="row cl">
@@ -158,8 +177,149 @@
             increaseArea: '20%'
         });
         get_noreason_info();
+        showUpdateSendProduct();
     });
 
+    /*显示所有产品及配件信息*/
+    function showUpdateSendProduct() {
+        var productList = getProduct() ; //所有产品
+        var html = "";
+        for(var i=0;i<productList.length;i++) {
+            var product = productList[i];
+            var produceFittings = product.fittingsList;  //获取该产品的所有配件
+            var colorList = product.colorList;  //该产品的所有颜色
+
+            var colorHtml = '';
+            if(colorList != null && colorList.length >0 ){
+                colorHtml += '<table style="height: 100%;">';
+                for(var j=0;j<colorList.length;j++){
+                    var number = "";
+                    var color = colorList[j];
+                    /*for(var k=0;k<orderItemList.length;k++){
+                        var item = orderItemList[k];
+                        if(item.itemColorId == color.colorId){
+                            number = item.itemNum;
+                        }
+                    }*/
+                    var fristInputStyle = "border-top: 1px solid #ddd;";
+                    if(color.colorProductId == product.productId) {
+                        colorHtml += '<tr >' +
+                                '         <td width="75" class="input-color-name" style="border-left: none;text-align: center;'+ fristInputStyle +'">' + color.colorName + '</td>' +
+                                '         <td width="25" style="'+ fristInputStyle +'">' +
+                                '             <input type="hidden" class="input-produce-id" value="' + color.colorProductId + '">' +
+                                '             <input type="hidden" class="input-color-id" value="' + color.colorId + '">' +
+                                '             <input type="hidden" class="input-produce-name" value="' + product.productName + '">' +
+                                '             <input type="text" class="input-text input-color-number number-input" style="width: 100%;" value="'+ number +'" placeholder="产品数量"  id="" name="" onkeyup="keyFun($(this))" onpaste="keyFun($(this))" >' +
+                                '         </td>' +
+                                '     </tr>';
+                        fristInputStyle = "";
+                    }
+
+                }
+                colorHtml += '</table>';
+            }else{
+                colorHtml += '<span>暂无该产品的颜色!<span>';
+            }
+
+            var produceFittingsHtml = '';
+            if(produceFittings != null && produceFittings.length > 0){
+                produceFittingsHtml += '<table style="height: 100%;">';
+                for(var m=0;m<produceFittings.length;m++){
+                    var produceFit = produceFittings[m];
+                    if(produceFit.productId == product.productId) {
+                        var fristInputStyle = "border-top: 1px solid #ddd;";
+                        produceFittingsHtml += '<tr >' +
+                                '         <td width="75" class="input-fittings-name" style="border-left: none;text-align: center; '+ fristInputStyle +'">' + produceFit.fittingsName +'</td>' +
+                                '         <td width="25" style="'+ fristInputStyle +'">' +
+                                '             <input type="hidden" class="input-produce-id" value="' + produceFit.productId + '">' +
+                                '             <input type="hidden" class="input-fittings-id" value="' + produceFit.fittingsId +'">' +
+                                '             <input type="text" class="input-text input-fittings-number" style="width: 100%;" value="'+ number +'" placeholder="配件数量" id="" name="" onkeyup="keyFun($(this))" onpaste="keyFun($(this))" >' +
+                                '         </td>' +
+                                '     </tr>';
+                        fristInputStyle = "";
+                    }
+                }
+                produceFittingsHtml += '</table>';
+            }else{
+                produceFittingsHtml += '<span>暂无产品配件!<span>';
+            }
+
+            var produceHtml = '<input type="hidden" value="'+ product.productId +'">' +
+                    '<span>'+  product.productName +'</span>';
+
+            html += ' <tr >' +
+                    '    <td width="70">'+ produceHtml +'</td>' +
+                    '    <td style="padding: 0px;text-align: center;">' +
+                    colorHtml +
+                    '   </td>' +
+                    '    <td style="padding: 0px;text-align: center;">' +
+                    produceFittingsHtml +
+                    '    </td>' +
+                    '</tr>';
+        }
+        html += '<tr><td colspan="3" style="text-align: center;"><button onClick="hideProductList();" class="btn btn-primary" type="button">确认</button></td></tr>'
+        $("#addProduct").html(html);
+    }
+
+    function showProductList() {
+        $('#produceSelect').show();
+    }
+
+    function hideProductList() {
+        var txt_product = '';
+        var color_numbers = '';
+        var fittings_numbers = '';
+        $("#addProduct").find(".input-color-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                var productId = $(this).parent().find(".input-produce-id").val();
+                var colorId = $(this).parent().find(".input-color-id").val();
+                var productName = $(this).parent().find(".input-produce-name").val();
+                //var colorName = $(this).parent().find(".input-color-name").val();
+                //封装更换的所有产品
+                color_numbers += productId + ':' + colorId + ":" + number + ",";
+                txt_product += '<span>'+ productName + '*' + number + '台</span>';
+            }
+        });
+        $("#addProduct").find(".input-fittings-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                var productId = $(this).parent().find(".input-produce-id").val();
+                var fittingsId = $(this).parent().find(".input-fittings-id").val();
+                var fittingsName = $(this).parent().parent().find(".input-fittings-name").html();
+                //var colorName = $(this).parent().find(".input-color-name").val();
+                //封装更换的所有产品
+                fittings_numbers += productId + ':' + fittingsId + ":" + number + ",";
+                txt_product += '<span>'+ fittingsName + '*' + number + '件</span>';
+            }
+        })
+        txt_product += '<button type="button" style="cursor:pointer; float: right;" class="my-btn-search" onclick="showProductList();">修改产品</button>';
+        $('#noreasonBackProduct').html(txt_product);
+        $('#closed_products').val(color_numbers);
+        $('#closed_fittings').val(fittings_numbers);
+        $('#produceSelect').hide();
+    }
+
+    /*获取产品*/
+    function getProduct(){
+        var productList;
+        var productName = $("#selectProcuct").val();
+        $.ajax({
+            type: "POST",
+            data:{'productName':productName},
+            url: "${path}/admin/signclosed/select_product",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    productList = data.returnMsg.productList;
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+        return productList;
+    }
+
     /*获取售后无理由退货信息*/
     function get_noreason_info() {
         $.ajax({
@@ -198,18 +358,19 @@
                             $(this).iCheck('check');
                         }
                     });
-                    var backProduct = '';
+                    var noreasonProduct = '';
                     if (noreasonBack.closedProdcues != null && noreasonBack.closedProdcues.length > 0) {
                         $.each(noreasonBack.closedProdcues,function(index,element){
-                            backProduct += '<span>'+ this.closedProductName + '*' + this.closedProdcueNumber + '</span>';
+                            noreasonProduct += '<span>'+ this.closedProductName + '*' + this.closedProdcueNumber + '</span>';
                         })
                     }
                     if (noreasonBack.closedFittings != null && noreasonBack.closedFittings.length > 0) {
                         $.each(noreasonBack.closedFittings,function(index,element){
-                            backProduct += '<span>'+ this.fittingName + '*' + this.closedFittingNumber + '</span>';
+                            noreasonProduct += '<span>'+ this.fittingName + '*' + this.closedFittingNumber + '</span>';
                         })
                     }
-                    $('#update-noreason-back').show();
+                    noreasonProduct += '<button type="button" style="cursor:pointer; float: right;" class="my-btn-search" onclick="showProductList();">修改产品</button>';
+                    $('#noreasonBackProduct').html(noreasonProduct);
                 }
             },
             error: function(XmlHttpRequest, textStatus, errorThrown){

+ 165 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_renewed.ftl

@@ -17,6 +17,7 @@
         .select-box select{-webkit-appearance:none !important;background-color: transparent; appearance:none;padding-right: 25px;}
         .table-bg th{background-color: #e2f6ff;}
         .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
+        .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 20px;background-color: #32a3d8;color: #fff;}
     </style>
     <title></title>
 </head>
@@ -118,6 +119,24 @@
             </div>
             <div class="formControls col-10 col-sm-10">
                 <div class="update-parts" id="renewedProduct"></div>
+                <input type="hidden" id="closed_products" name="closed_products" />
+                <input type="hidden" id="closed_fittings" name="closed_fittings" />
+            </div>
+            <div class="formControls col-9 col-sm-9 text-c" id="produceSelect" style="padding-top: 10px;display: none;">
+                <div>
+                    <input type="text" oninput="showUpdateSendProduct();" onpropertychange="showUpdateSendProduct();" class="input-text" style="width: 100%" id="selectProcuct" name="selectProcuct" placeholder="请输入产品名称搜索">
+                </div>
+                <table class="table table-border table-bg table-bordered">
+                    <thead>
+                    <tr class="text-c">
+                        <th style="text-align: center;" width="60">产品名称</th>
+                        <th style="text-align: center;" width="60">产品颜色</th>
+                        <th style="text-align: center;" width="60">产品配件</th>
+                    </tr>
+                    </thead>
+                    <tbody id="addProduct">
+                    </tbody>
+                </table>
             </div>
         </div>
 
@@ -220,7 +239,7 @@
                 <strong>寄出产品</strong>
             </div>
             <div class="formControls col-10 col-sm-10">
-                <div class="update-parts"><span>红色净水机(wx-1)x 1台</span><span>水箱 x 1件</span><span>t1 x 1件</span><span>t2 x 1件</span></div>
+                <div class="update-parts"></div>
             </div>
         </div>
         <div class="row cl">
@@ -304,8 +323,150 @@
             increaseArea: '20%'
         });
         get_renewed_info();
+        showUpdateSendProduct();
     });
 
+    /*显示所有产品及配件信息*/
+    function showUpdateSendProduct() {
+        var productList = getProduct() ; //所有产品
+        var html = "";
+        for(var i=0;i<productList.length;i++) {
+            var product = productList[i];
+            var produceFittings = product.fittingsList;  //获取该产品的所有配件
+            var colorList = product.colorList;  //该产品的所有颜色
+
+
+            var colorHtml = '';
+            if(colorList != null && colorList.length >0 ){
+                colorHtml += '<table style="height: 100%;">';
+                for(var j=0;j<colorList.length;j++){
+                    var number = "";
+                    var color = colorList[j];
+                    /*for(var k=0;k<orderItemList.length;k++){
+                        var item = orderItemList[k];
+                        if(item.itemColorId == color.colorId){
+                            number = item.itemNum;
+                        }
+                    }*/
+                    var fristInputStyle = "border-top: 1px solid #ddd;";
+                    if(color.colorProductId == product.productId) {
+                        colorHtml += '<tr >' +
+                                '         <td width="75" class="input-color-name" style="border-left: none;text-align: center;'+ fristInputStyle +'">' + color.colorName + '</td>' +
+                                '         <td width="25" style="'+ fristInputStyle +'">' +
+                                '             <input type="hidden" class="input-produce-id" value="' + color.colorProductId + '">' +
+                                '             <input type="hidden" class="input-color-id" value="' + color.colorId + '">' +
+                                '             <input type="hidden" class="input-produce-name" value="' + product.productName + '">' +
+                                '             <input type="text" class="input-text input-color-number number-input" style="width: 100%;" value="'+ number +'" placeholder="产品数量"  id="" name="" onkeyup="keyFun($(this))" onpaste="keyFun($(this))" >' +
+                                '         </td>' +
+                                '     </tr>';
+                        fristInputStyle = "";
+                    }
+
+                }
+                colorHtml += '</table>';
+            }else{
+                colorHtml += '<span>暂无该产品的颜色!<span>';
+            }
+
+            var produceFittingsHtml = '';
+            if(produceFittings != null && produceFittings.length > 0){
+                produceFittingsHtml += '<table style="height: 100%;">';
+                for(var m=0;m<produceFittings.length;m++){
+                    var produceFit = produceFittings[m];
+                    if(produceFit.productId == product.productId) {
+                        var fristInputStyle = "border-top: 1px solid #ddd;";
+                        produceFittingsHtml += '<tr >' +
+                                '         <td width="75" class="input-fittings-name" style="border-left: none;text-align: center; '+ fristInputStyle +'">' + produceFit.fittingsName +'</td>' +
+                                '         <td width="25" style="'+ fristInputStyle +'">' +
+                                '             <input type="hidden" class="input-produce-id" value="' + produceFit.productId + '">' +
+                                '             <input type="hidden" class="input-fittings-id" value="' + produceFit.fittingsId +'">' +
+                                '             <input type="text" class="input-text input-fittings-number" style="width: 100%;" value="'+ number +'" placeholder="配件数量" id="" name="" onkeyup="keyFun($(this))" onpaste="keyFun($(this))" >' +
+                                '         </td>' +
+                                '     </tr>';
+                        fristInputStyle = "";
+                    }
+                }
+                produceFittingsHtml += '</table>';
+            }else{
+                produceFittingsHtml += '<span>暂无产品配件!<span>';
+            }
+
+            var produceHtml = '<input type="hidden" value="'+ product.productId +'">' +
+                    '<span>'+  product.productName +'</span>';
+
+            html += ' <tr >' +
+                    '    <td width="70">'+ produceHtml +'</td>' +
+                    '    <td style="padding: 0px;text-align: center;">' +
+                    colorHtml +
+                    '   </td>' +
+                    '    <td style="padding: 0px;text-align: center;">' +
+                    produceFittingsHtml +
+                    '    </td>' +
+                    '</tr>';
+        }
+        html += '<tr><td colspan="3" style="text-align: center;"><button onClick="hideProductList();" class="btn btn-primary" type="button">确认</button></td></tr>'
+        $("#addProduct").html(html);
+    }
+
+    function showProductList() {
+        $('#produceSelect').show();
+    }
+
+    function hideProductList() {
+        var txt_product = '';
+        var color_numbers = '';
+        var fittings_numbers = '';
+        $("#addProduct").find(".input-color-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                var productId = $(this).parent().find(".input-produce-id").val();
+                var colorId = $(this).parent().find(".input-color-id").val();
+                var productName = $(this).parent().find(".input-produce-name").val();
+                //var colorName = $(this).parent().find(".input-color-name").val();
+                //封装更换的所有产品
+                color_numbers += productId + ':' + colorId + ":" + number + ",";
+                txt_product += '<span>'+ productName + '*' + number + '台</span>';
+            }
+        });
+        $("#addProduct").find(".input-fittings-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                var productId = $(this).parent().find(".input-produce-id").val();
+                var fittingsId = $(this).parent().find(".input-fittings-id").val();
+                var fittingsName = $(this).parent().parent().find(".input-fittings-name").html();
+                //var colorName = $(this).parent().find(".input-color-name").val();
+                //封装更换的所有产品
+                fittings_numbers += productId + ':' + fittingsId + ":" + number + ",";
+                txt_product += '<span>'+ fittingsName + '*' + number + '件</span>';
+            }
+        })
+        txt_product += '<button type="button" style="cursor:pointer; float: right;" class="my-btn-search" onclick="showProductList();">修改产品</button>';
+        $('#renewedProduct').html(txt_product);
+        $('#closed_products').val(color_numbers);
+        $('#closed_fittings').val(fittings_numbers);
+        $('#produceSelect').hide();
+    }
+
+    /*获取产品*/
+    function getProduct(){
+        var productList;
+        var productName = $("#selectProcuct").val();
+        $.ajax({
+            type: "POST",
+            data:{'productName':productName},
+            url: "${path}/admin/signclosed/select_product",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    productList = data.returnMsg.productList;
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+        return productList;
+    }
+
     /*获取换新信息*/
     function get_renewed_info() {
         $.ajax({
@@ -340,7 +501,7 @@
                     }
                     var renewedProduct = '';
                     if (renewed.closedProdcues != null && renewed.closedProdcues.length > 0) {
-                        $.each(backGoods.closedProdcues,function(index,element){
+                        $.each(renewed.closedProdcues,function(index,element){
                             renewedProduct += '<span>'+ this.closedProductName + '*' + this.closedProdcueNumber + '台</span>';
                         })
                     }
@@ -349,6 +510,7 @@
                             renewedProduct += '<span>'+ this.fittingName + '*' + this.closedFittingNumber + '件</span>';
                         })
                     }
+                    renewedProduct += '<button type="button" style="cursor:pointer; float: right;" class="my-btn-search" onclick="showProductList();">修改产品</button>';
                     $('#renewedId').val(renewed.renewedId);
                     $('input[name="renewedBackStatus"]').each(function(){
                         if (this.value == renewed.renewedBackStatus) {
@@ -361,7 +523,7 @@
                         }
                     });
                     $('#renewedSchedule').html(renewedSchedule);
-                    $('#renewedProduct').val(renewedProduct);
+                    $('#renewedProduct').html(renewedProduct);
                     $("#renewedBackLogisticsCompany option[value='" + renewed.renewedBackLogisticsCompany + "']").attr("selected","true");
                     $("#renewedSendLogisticsCompany option[value='" + renewed.renewedSendLogisticsCompany + "']").attr("selected","true");
 

+ 165 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_repair.ftl

@@ -13,11 +13,12 @@
     <link href="${path}/common/lib/Hui-iconfont/1.0.8/iconfont.css" rel="stylesheet" type="text/css" />
 <#--<link href="lib/webuploader/0.1.5/webuploader.css" rel="stylesheet" type="text/css" />-->
     <style>
-        #province select{margin-right:10px; width:100px;height: 31px;-webkit-appearance:none !important;appearance:none;background: url(images/select-1.png) right center no-repeat;background-size: auto 100%;padding-left:3px;padding-right: 25px;}
+        #province select{margin-right:10px; width:100px;height: 31px;-webkit-appearance:none !important;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size: auto 100%;padding-left:3px;padding-right: 25px;}
         .select-box{background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size: auto 100%;}
         .select-box select{-webkit-appearance:none !important;background-color: transparent; appearance:none;padding-right: 25px;}
         .table-bg th{background-color: #e2f6ff;}
         .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
+        .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 20px;background-color: #32a3d8;color: #fff;}
     </style>
     <title></title>
 </head>
@@ -119,6 +120,24 @@
             </div>
             <div class="formControls col-10 col-sm-10">
                 <div class="update-parts" id="repairProduct"></div>
+                <input type="hidden" id="closed_products" name="closed_products" />
+                <input type="hidden" id="closed_fittings" name="closed_fittings" />
+            </div>
+            <div class="formControls col-9 col-sm-9 text-c" id="produceSelect" style="padding-top: 10px;display: none;">
+                <div>
+                    <input type="text" oninput="showUpdateSendProduct();" onpropertychange="showUpdateSendProduct();" class="input-text" style="width: 100%" id="selectProcuct" name="selectProcuct" placeholder="请输入产品名称搜索">
+                </div>
+                <table class="table table-border table-bg table-bordered">
+                    <thead>
+                    <tr class="text-c">
+                        <th style="text-align: center;" width="60">产品名称</th>
+                        <th style="text-align: center;" width="60">产品颜色</th>
+                        <th style="text-align: center;" width="60">产品配件</th>
+                    </tr>
+                    </thead>
+                    <tbody id="addProduct">
+                    </tbody>
+                </table>
             </div>
         </div>
 
@@ -221,7 +240,7 @@
                 <strong>寄出产品</strong>
             </div>
             <div class="formControls col-10 col-sm-10">
-                <div class="update-parts"><span>红色净水机(wx-1)x 1台</span><span>水箱 x 1件</span><span>t1 x 1件</span><span>t2 x 1件</span></div>
+                <div class="update-parts"></div>
             </div>
         </div>
         <div class="row cl">
@@ -305,8 +324,150 @@
             increaseArea: '20%'
         });
         get_repair_info();
+        showUpdateSendProduct();
     });
 
+    /*显示所有产品及配件信息*/
+    function showUpdateSendProduct() {
+        var productList = getProduct() ; //所有产品
+        var html = "";
+        for(var i=0;i<productList.length;i++) {
+            var product = productList[i];
+            var produceFittings = product.fittingsList;  //获取该产品的所有配件
+            var colorList = product.colorList;  //该产品的所有颜色
+
+
+            var colorHtml = '';
+            if(colorList != null && colorList.length >0 ){
+                colorHtml += '<table style="height: 100%;">';
+                for(var j=0;j<colorList.length;j++){
+                    var number = "";
+                    var color = colorList[j];
+                    /*for(var k=0;k<orderItemList.length;k++){
+                        var item = orderItemList[k];
+                        if(item.itemColorId == color.colorId){
+                            number = item.itemNum;
+                        }
+                    }*/
+                    var fristInputStyle = "border-top: 1px solid #ddd;";
+                    if(color.colorProductId == product.productId) {
+                        colorHtml += '<tr >' +
+                                '         <td width="75" class="input-color-name" style="border-left: none;text-align: center;'+ fristInputStyle +'">' + color.colorName + '</td>' +
+                                '         <td width="25" style="'+ fristInputStyle +'">' +
+                                '             <input type="hidden" class="input-produce-id" value="' + color.colorProductId + '">' +
+                                '             <input type="hidden" class="input-color-id" value="' + color.colorId + '">' +
+                                '             <input type="hidden" class="input-produce-name" value="' + product.productName + '">' +
+                                '             <input type="text" class="input-text input-color-number number-input" style="width: 100%;" value="'+ number +'" placeholder="产品数量"  id="" name="" onkeyup="keyFun($(this))" onpaste="keyFun($(this))" >' +
+                                '         </td>' +
+                                '     </tr>';
+                        fristInputStyle = "";
+                    }
+
+                }
+                colorHtml += '</table>';
+            }else{
+                colorHtml += '<span>暂无该产品的颜色!<span>';
+            }
+
+            var produceFittingsHtml = '';
+            if(produceFittings != null && produceFittings.length > 0){
+                produceFittingsHtml += '<table style="height: 100%;">';
+                for(var m=0;m<produceFittings.length;m++){
+                    var produceFit = produceFittings[m];
+                    if(produceFit.productId == product.productId) {
+                        var fristInputStyle = "border-top: 1px solid #ddd;";
+                        produceFittingsHtml += '<tr >' +
+                                '         <td width="75" class="input-fittings-name" style="border-left: none;text-align: center; '+ fristInputStyle +'">' + produceFit.fittingsName +'</td>' +
+                                '         <td width="25" style="'+ fristInputStyle +'">' +
+                                '             <input type="hidden" class="input-produce-id" value="' + produceFit.productId + '">' +
+                                '             <input type="hidden" class="input-fittings-id" value="' + produceFit.fittingsId +'">' +
+                                '             <input type="text" class="input-text input-fittings-number" style="width: 100%;" value="'+ number +'" placeholder="配件数量" id="" name="" onkeyup="keyFun($(this))" onpaste="keyFun($(this))" >' +
+                                '         </td>' +
+                                '     </tr>';
+                        fristInputStyle = "";
+                    }
+                }
+                produceFittingsHtml += '</table>';
+            }else{
+                produceFittingsHtml += '<span>暂无产品配件!<span>';
+            }
+
+            var produceHtml = '<input type="hidden" value="'+ product.productId +'">' +
+                    '<span>'+  product.productName +'</span>';
+
+            html += ' <tr >' +
+                    '    <td width="70">'+ produceHtml +'</td>' +
+                    '    <td style="padding: 0px;text-align: center;">' +
+                    colorHtml +
+                    '   </td>' +
+                    '    <td style="padding: 0px;text-align: center;">' +
+                    produceFittingsHtml +
+                    '    </td>' +
+                    '</tr>';
+        }
+        html += '<tr><td colspan="3" style="text-align: center;"><button onClick="hideProductList();" class="btn btn-primary" type="button">确认</button></td></tr>'
+        $("#addProduct").html(html);
+    }
+
+    function showProductList() {
+        $('#produceSelect').show();
+    }
+
+    function hideProductList() {
+        var txt_product = '';
+        var color_numbers = '';
+        var fittings_numbers = '';
+        $("#addProduct").find(".input-color-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                var productId = $(this).parent().find(".input-produce-id").val();
+                var colorId = $(this).parent().find(".input-color-id").val();
+                var productName = $(this).parent().find(".input-produce-name").val();
+                //var colorName = $(this).parent().find(".input-color-name").val();
+                //封装更换的所有产品
+                color_numbers += productId + ':' + colorId + ":" + number + ",";
+                txt_product += '<span>'+ productName + '*' + number + '台</span>';
+            }
+        });
+        $("#addProduct").find(".input-fittings-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                var productId = $(this).parent().find(".input-produce-id").val();
+                var fittingsId = $(this).parent().find(".input-fittings-id").val();
+                var fittingsName = $(this).parent().parent().find(".input-fittings-name").html();
+                //var colorName = $(this).parent().find(".input-color-name").val();
+                //封装更换的所有产品
+                fittings_numbers += productId + ':' + fittingsId + ":" + number + ",";
+                txt_product += '<span>'+ fittingsName + '*' + number + '件</span>';
+            }
+        })
+        txt_product += '<button type="button" style="cursor:pointer; float: right;" class="my-btn-search" onclick="showProductList();">修改产品</button>';
+        $('#repairProduct').html(txt_product);
+        $('#closed_products').val(color_numbers);
+        $('#closed_fittings').val(fittings_numbers);
+        $('#produceSelect').hide();
+    }
+
+    /*获取产品*/
+    function getProduct(){
+        var productList;
+        var productName = $("#selectProcuct").val();
+        $.ajax({
+            type: "POST",
+            data:{'productName':productName},
+            url: "${path}/admin/signclosed/select_product",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    productList = data.returnMsg.productList;
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+        return productList;
+    }
+
     /*获取维修信息*/
     function get_repair_info() {
         $.ajax({
@@ -321,7 +482,6 @@
                     getProvince('repairProvinceNumber');
                     getCity('repairCityNumber',repair.provinceNumber);
                     getDistrict('repairAreaNumber',repair.cityNumber);
-                    console.log(repair);
                     var repairSchedule = '';
                     switch (repair.repairBackStatus) {
                         case 1:repairSchedule += '待寄回,';break;
@@ -350,6 +510,7 @@
                             repairProduct += '<span>'+ this.fittingName + '*' + this.closedFittingNumber + '件</span>';
                         })
                     }
+                    repairProduct += '<button type="button" style="cursor:pointer; float: right;" class="my-btn-search" onclick="showProductList();">修改产品</button>';
                     $('#repairId').val(repair.repairId);
                     $('input[name="repairBackStatus"]').each(function(){
                         if (this.value == repair.repairBackStatus) {
@@ -380,7 +541,7 @@
                     $('#repairBackName').val(repair.repairBackName);
                     $('#repairBackTel').val(repair.repairBackTel);
                     //$('#repairBackMachineNo').val(repair.repairBackMachineNo);
-                    $('#repairBackEfastOrderId').html(repair.repairBackEfastOrderId);
+                    $('#repairBackEfastOrderId').val(repair.repairBackEfastOrderId);
                     $('#repairSendName').val(repair.repairSendName);
                     $('#repairSendTel').val(repair.repairSendTel);
                     $('#repairSendAddress').val(repair.repairSendAddress);