Browse Source

2、订单新增退货状态

liujiankang 6 years ago
parent
commit
f1dd883271
16 changed files with 175 additions and 22 deletions
  1. 9 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ClosedProdcue.java
  2. 19 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java
  3. 9 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrderItem.java
  4. 5 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java
  5. 7 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java
  6. 48 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java
  7. 17 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java
  8. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/CustomerInfoMapper.java
  9. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java
  10. 2 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/closedProdcueMapper.xml
  11. 7 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerInfoMapper.xml
  12. 17 3
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml
  13. 6 2
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderController.java
  14. 1 1
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/order_list.ftl
  15. 2 1
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_customer.ftl
  16. 16 12
      watero-rst-web/src/main/webapp/common/js/customer/customer.js

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

@@ -27,6 +27,7 @@ public class ClosedProdcue  implements Serializable {
     private Integer productType;        //商品类型
     private String productNumber;       //产品型号
     private ProductColor productColor;      //颜色
+    private Integer itemId;      //订单项id
 
     private String colorBar;        //69码
 
@@ -135,4 +136,12 @@ public class ClosedProdcue  implements Serializable {
     public void setColorBar(String colorBar) {
         this.colorBar = colorBar;
     }
+
+    public Integer getItemId() {
+        return itemId;
+    }
+
+    public void setItemId(Integer itemId) {
+        this.itemId = itemId;
+    }
 }

+ 19 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java

@@ -137,6 +137,9 @@ public class SalesOrder implements Serializable {
    private Integer salesWarehouseId;//所属仓库id
 
    private Integer isDevelop;//产品项是否包含有水机 1是 2否
+
+    private Integer salesReturnStatus;//退货状态 1未退货、2已退货、3部分退货
+    private Integer itemReturnNum;   //退货数量
  public Integer getStartOrderNO() {
        return startOrderNO;
     }
@@ -791,4 +794,20 @@ public class SalesOrder implements Serializable {
     public void setIsDevelop(Integer isDevelop) {
         this.isDevelop = isDevelop;
     }
+
+    public Integer getSalesReturnStatus() {
+        return salesReturnStatus;
+    }
+
+    public void setSalesReturnStatus(Integer salesReturnStatus) {
+        this.salesReturnStatus = salesReturnStatus;
+    }
+
+    public Integer getItemReturnNum() {
+        return itemReturnNum;
+    }
+
+    public void setItemReturnNum(Integer itemReturnNum) {
+        this.itemReturnNum = itemReturnNum;
+    }
 }

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

@@ -33,6 +33,7 @@ public class SalesOrderItem implements Serializable {
     private Integer colorIsMachine; //是否是水机 1:水机 2;其它产品
 
     private String salesDealCode;   //交易号
+    private Integer itemReturnNum;   //退货数量
 
     public Integer getItemIsSource() {
         return itemIsSource;
@@ -185,4 +186,12 @@ public class SalesOrderItem implements Serializable {
     public void setSalesDealCode(String salesDealCode) {
         this.salesDealCode = salesDealCode;
     }
+
+    public Integer getItemReturnNum() {
+        return itemReturnNum;
+    }
+
+    public void setItemReturnNum(Integer itemReturnNum) {
+        this.itemReturnNum = itemReturnNum;
+    }
 }

+ 5 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java

@@ -360,4 +360,9 @@ public interface CustomerService {
      * 删除收费信息
      */
     Integer delInformationInfo(Integer feeId);
+
+    /**
+     * 修改订单项所有退货数量为0
+     */
+    Integer updateItemreturnNumByorderid(Integer itemOrderId);
 }

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

@@ -430,4 +430,11 @@ public interface SalesOrderService {
      * 根据店铺id获取售后规则
      */
     AfterrulesInfo getAfterrulesInfo(Integer storeId);
+
+    /**
+     * 修改订单项退货数据
+     */
+    Integer updateOrderItemReturnNum(SalesOrderItem salesOrderItem);
+
+
 }

+ 48 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -205,6 +205,10 @@ public class CustomerServiceImpl implements CustomerService {
         CustomerCommonUtil.setProduce(cmRelation);
         if(cmRelation.getClosedProdcues() != null && cmRelation.getClosedProdcues().size()>0){
             closedProdcueMapper.insert(cmRelation.getClosedProdcues());
+            //修改退货数据 2019 03 13
+             if(customerInfo.getProcTypeId() == 4){
+                 updateOrderReturninfo(cmRelation.getClosedProdcues());
+             }
         }
         if(cmRelation.getSendProdcues() != null && cmRelation.getSendProdcues().size() > 0){
             sendProdcueMapper.insert(cmRelation.getSendProdcues());
@@ -347,6 +351,11 @@ public class CustomerServiceImpl implements CustomerService {
         CustomerCommonUtil.setProduce(cr);
         if(cr.getClosedProdcues() != null && cr.getClosedProdcues().size()>0){
             closedProdcueMapper.insert(cr.getClosedProdcues());
+            //修改退货数据 2019 03 13
+            if(customerInfo.getProcTypeId() == 4){
+                updateOrderReturninfo(cr.getClosedProdcues());
+            }
+
         }
         if(cr.getSendProdcues() != null && cr.getSendProdcues().size() > 0){
             sendProdcueMapper.insert(cr.getSendProdcues());
@@ -356,6 +365,38 @@ public class CustomerServiceImpl implements CustomerService {
         return flag;
     }
 
+    public void updateOrderReturninfo(List<ClosedProdcue> listClosedProdcue){
+        for (ClosedProdcue closedProdcue : listClosedProdcue){
+            if(closedProdcue.getItemId() != null){
+                SalesOrderItem item = salesOrderMapper.getSalesOrderItem(closedProdcue.getItemId());
+
+                if(item.getItemReturnNum()+closedProdcue.getClosedProdcueNumber() <= item.getItemNum()){//已退货数量+当前退货数量小于或等于订单项数量
+                    SalesOrderItem orderitem = new SalesOrderItem();
+                    orderitem.setItemId(closedProdcue.getItemId());
+                    orderitem.setItemReturnNum(item.getItemReturnNum()+closedProdcue.getClosedProdcueNumber());
+                    salesOrderMapper.updateOrderItemReturnNum(orderitem);
+                    List<SalesOrderItem> items = salesOrderMapper.listSalesOrderItem(item);
+                    Integer num1 = 0;//订单总数量
+                    Integer num2 = 0;//订单已退货数量
+                    for(SalesOrderItem it : items){
+                        num1 = num1+it.getItemNum();
+                        num2 = num2+it.getItemReturnNum();
+                    }
+                    SalesOrder order = new SalesOrder();
+                    order.setSalesId(item.getItemOrderId());
+                    if(num2 < num1){
+                        order.setSalesReturnStatus(3);//1未退货、2已退货、3部分退货
+                    }else{
+                        order.setSalesReturnStatus(2);//1未退货、2已退货、3部分退货
+                    }
+                    salesOrderMapper.updateSalesOrder(order);
+
+                }
+            }
+
+        }
+    }
+
     /**
      * 删除旧的售后数据
      * @param customer
@@ -390,9 +431,10 @@ public class CustomerServiceImpl implements CustomerService {
             SalesOrder newOrder = new SalesOrder(); //salesOrderStatus
             newOrder.setSalesId(relationOrderList.get(k).getSalesId());
             newOrder.setSalesOrderStatus(1);    //恢复订单到之前的状态
+            newOrder.setSalesReturnStatus(1);//恢复为未退货状态
             salesOrderMapper.updateSalesOrder(newOrder);
+            customerInfoMapper.updateItemreturnNumByorderid(relationOrderList.get(k).getSalesId());//修改订单项所有退货数量为0
         }
-
         /* 删除掉订单与处理的关联表 */
         relationOrderService.deleteByRelationId(cmRelation.getRelationId());
     }
@@ -1790,4 +1832,9 @@ public class CustomerServiceImpl implements CustomerService {
     public Integer delInformationInfo(Integer feeId) {
         return customerInfoMapper.delInformationInfo(feeId);
     }
+
+    @Override
+    public Integer updateItemreturnNumByorderid(Integer itemOrderId) {
+        return customerInfoMapper.updateItemreturnNumByorderid(itemOrderId);
+    }
 }

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

@@ -138,6 +138,18 @@ public class SalesOrderServiceImpl implements SalesOrderService {
             SalesOrderItem salesOrderItem = new SalesOrderItem();
             salesOrderItem.setItemOrderId(so.getSalesId());
             List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
+            //去除已退货的订单项
+            int num = salesOrderItemList.size();
+            for(int i = 0;i< num;){
+                SalesOrderItem item = salesOrderItemList.get(i);
+                if(item.getItemNum().intValue() == item.getItemReturnNum().intValue()){
+                    salesOrderItemList.remove(i);
+                    num = salesOrderItemList.size();
+                    i = 0;
+                }else{
+                    i++;
+                }
+            }
             for(SalesOrderItem item : salesOrderItemList){//判断是否包含净水机 1是 2否
                 if(item.getColorIsMachine() != null){
                     if(item.getColorIsMachine() == 1){
@@ -1194,4 +1206,9 @@ public class SalesOrderServiceImpl implements SalesOrderService {
     public AfterrulesInfo getAfterrulesInfo(Integer storeId) {
         return salesOrderMapper.getAfterrulesInfo(storeId);
     }
+
+    @Override
+    public Integer updateOrderItemReturnNum(SalesOrderItem salesOrderItem) {
+        return salesOrderMapper.updateOrderItemReturnNum(salesOrderItem);
+    }
 }

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

@@ -221,4 +221,9 @@ public interface CustomerInfoMapper {
      */
     Integer delInformationInfo(Integer feeId);
 
+    /**
+     * 修改订单项所有退货数量为0
+     */
+    Integer updateItemreturnNumByorderid(Integer itemOrderId);
+
 }

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

@@ -355,4 +355,9 @@ public interface SalesOrderMapper {
      * 根据店铺id获取售后规则
      */
     AfterrulesInfo getAfterrulesInfo(Integer storeId);
+
+    /**
+     * 修改订单项退货数据
+     */
+    Integer updateOrderItemReturnNum(SalesOrderItem salesOrderItem);
 }

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

@@ -21,12 +21,12 @@
 
   <insert id="insert" parameterType="ClosedProdcue" >
     insert into tb_rst_cm_closed_prodcue ( relation_id, product_id, closed_prodcue_machine_no,
-      color_id, closed_prodcue_number,color_bar)
+      color_id, closed_prodcue_number,color_bar,item_id)
     values
     <foreach collection="list" item="node" index="index" separator="," open="" close="">
       (
         #{node.relationId}, #{node.productId}, #{node.closedProdcueMachineNo},
-       #{node.colorId}, #{node.closedProdcueNumber},#{node.colorBar}
+       #{node.colorId}, #{node.closedProdcueNumber},#{node.colorBar},#{node.itemId}
       )
     </foreach>
   </insert>

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

@@ -1388,4 +1388,11 @@ LEFT JOIN tb_rst_cm_sendback_info csi ON csi.relation_id = cr.relation_id
     DELETE from tb_rst_fee_information_info where fee_id = #{feeId}
   </delete>
   <!--收费信息sql end -->
+
+  <update id="updateItemreturnNumByorderid" parameterType="Integer">
+      update tb_rst_sales_order_item
+      set
+        item_return_num = 0
+    where item_order_id = #{itemOrderId}
+  </update>
 </mapper>

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

@@ -481,7 +481,8 @@
             pi.product_abbreviation,
             pc.color_abbreviation,
             pc.color_is_weight,
-            pc.color_is_machine
+            pc.color_is_machine,
+            item_return_num
         FROM
             tb_rst_sales_order_item
       LEFT JOIN tb_rst_product_info pi ON tb_rst_sales_order_item.item_product_id = pi.product_id
@@ -894,7 +895,10 @@
         sales_admin_id = #{salesAdminId},
       </if >
       <if test="salesCustomerId != null ">
-          sales_customer_id = #{salesCustomerId}
+          sales_customer_id = #{salesCustomerId},
+      </if >
+      <if test="salesReturnStatus != null ">
+          sales_return_status = #{salesReturnStatus}
       </if >
     </set >
     where sales_id= #{salesId}
@@ -933,7 +937,7 @@
           sales_post_firm = #{item.salesPostFirm},
         </if>
         <if test="item.salesPostNum != null" >
-          sales_post_num = #{item.salesPostNum},
+          sales_post_num = #{item.salesPostNum}
         </if>
       </set>
       where sales_id = #{item.salesId}
@@ -958,6 +962,16 @@
     AND item_color_bar = #{itemColorBar}
   </update>
 
+  <update id="updateOrderItemReturnNum" parameterType="SalesOrderItem">
+    UPDATE tb_rst_sales_order_item
+    <set>
+        <if test="itemReturnNum != null" >
+            item_return_num = #{itemReturnNum}
+        </if>
+    </set>
+    where item_id = #{itemId}
+  </update>
+
 
   <!-- 根据外部商城订单号查询订单信息 -->
   <select id="getSalesOrderByLogistics" resultType="SalesOrder" parameterType="SalesOrder" >

+ 6 - 2
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderController.java

@@ -826,11 +826,15 @@ public class AdminOrderController {
                 row.add(salesOrder.getSalesPostNum() == null ? null:salesOrder.getSalesPostNum());
                 row.add(salesOrder.getItemProductName() == null ? null:salesOrder.getItemProductName()+(salesOrder.getItemProductColor() == null ? null:"-"+salesOrder.getItemProductColor()));
                 //row.add(salesOrder.getItemProductColor() == null ? null:salesOrder.getItemProductColor());
-                row.add(salesOrder.getItemNum() == null ? null:salesOrder.getItemNum());
+                row.add((salesOrder.getItemNum() - salesOrder.getItemReturnNum()));
                 row.add(salesOrder.getCompanyName() == null ? null:salesOrder.getCompanyName());
                 row.add(salesOrder.getStoreName() == null ? null:salesOrder.getStoreName());
                 row.add(salesOrder.getSalesDeliverTime() == null ? null:formatter.format(salesOrder.getSalesDeliverTime()));
-                row.add(salesOrder.getSalesDistributionTime() == null ? formatter.format(salesOrder.getSalesSendTime()):formatter.format(salesOrder.getSalesDistributionTime()));
+                if(salesOrder.getSalesDistributionTime() == null){
+                    row.add(formatter.format(salesOrder.getSalesSendTime()));
+                }else{
+                    row.add(formatter.format(salesOrder.getSalesDistributionTime()));
+                }
                 row.add(salesOrder.getProcMethodName() == null ? null:salesOrder.getProcMethodName());
                 countexts.add(row);
             }

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

@@ -378,7 +378,7 @@
                         <#--1:正常 2:换货 3:退货  4:维修  5:补发-->
 
                         var disHtml =  "";
-                        if(salesOrder.salesOrderId == null || salesOrder.salesOrderId == "" || typeof (salesOrder.salesOrderId) == 'undefined'){
+                        if(salesOrder.salesOrderId == null || salesOrder.salesOrderId == "" || typeof (salesOrder.salesOrderId) == 'undefined' || salesOrder.salesReturnStatus == 2){
                             disHtml = 'disabled="disabled"';
                         }
                         html += '<tr class="text-c">' +

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

@@ -556,9 +556,10 @@
                                 ${closedProdcues.closedColorName!""}
                                 </td>
                                 <td style="text-align: center;">
-                                    <input type="text" style="width: 100%;border: none;text-align: center;" class="input-text input-number input-itemNum" value="${closedProdcues.closedProdcueNumber!"0"}"  placeholder="产品数量" onkeyup="keyFun($(this),999,1)" onpaste="keyFun($(this),999,1)">
+                                    <input type="text" style="width: 100%;border: none;text-align: center;" class="input-text input-number input-itemNum" value="${closedProdcues.closedProdcueNumber!"0"}"  placeholder="产品数量" onkeyup="keyFun($(this),999,0)" onpaste="keyFun($(this),999,0)">
                                 </td>
                                 <td style="text-align: center;">
+                                    <input type="hidden" class="input-item-id" value="${closedProdcues.itemId!''}">
                                     <input type="hidden" class="input-produce-id" value="${closedProdcues.productId}">
                                     <input type="hidden" class="input-fc-id" value="${closedProdcues.colorId}">
                                     <input type="hidden" class="input-69code" value="${closedProdcues.colorBar}">

+ 16 - 12
watero-rst-web/src/main/webapp/common/js/customer/customer.js

@@ -1151,18 +1151,20 @@ function setProduce(orderItemList) {
     for(var k=0;k<orderItemList.length;k++){
         var item = orderItemList[k];
         var fiHtml = "-";
-        colorHtml += '<tr >'
-            + '<td style="text-align: center;" >' + item.itemProductName + '</td>'
-            + '<td style="text-align: center;" >' + item.itemProductColor + '</td>'
-            + '<td style="text-align: center;"><input type="text" style="width: 100%;border: none;text-align: center;" class="input-text input-number input-itemNum" value="' + item.itemNum + '"  placeholder="产品数量" onkeyup="keyFun($(this),999,1)" onpaste="keyFun($(this),999,1)"></td>'
-            + '<td style="text-align: center;" >'
-            + '<input type="hidden" class="input-produce-id" value="' + item.itemProductId + '">'
-            + '<input type="hidden" class="input-fc-id" value="' + item.itemColorId +'">'
-            + '<input type="hidden" class="input-69code" value="' + item.itemColorBar +'">'
-            + '<input type="" class="input-text input-number input-code" style="width: 100%;border: none;text-align: center;" value="" placeholder="机器编号" name="" id="item-' + item.itemProductId + '-' + item.itemColorId +'" number="'+ item.itemNum +'" "  onkeyup="keyFunString($(this),30)" onpaste="keyFunString($(this),30)" >'
-            + '</td>'
-            + '<td style="text-align: center;" ><a href="javascript:void(0)" onclick="delColor(this)" >删除</a></td>'
-            + '</tr>';
+            colorHtml += '<tr >'
+                + '<td style="text-align: center;" >' + item.itemProductName + '</td>'
+                + '<td style="text-align: center;" >' + item.itemProductColor + '</td>'
+                + '<td style="text-align: center;"><input type="text" style="width: 100%;border: none;text-align: center;" class="input-text input-number input-itemNum" value="' + (item.itemNum-item.itemReturnNum) + '"  placeholder="产品数量" onkeyup="keyFun($(this),999,0)" onpaste="keyFun($(this),999,0)"></td>'
+                + '<td style="text-align: center;" >'
+                + '<input type="hidden" class="input-item-id" value="' + item.itemId + '">'
+                + '<input type="hidden" class="input-produce-id" value="' + item.itemProductId + '">'
+                + '<input type="hidden" class="input-fc-id" value="' + item.itemColorId +'">'
+                + '<input type="hidden" class="input-69code" value="' + item.itemColorBar +'">'
+                + '<input type="" class="input-text input-number input-code" style="width: 100%;border: none;text-align: center;" value="" placeholder="机器编号" name="" id="item-' + item.itemProductId + '-' + item.itemColorId +'" number="'+ (item.itemNum-item.itemReturnNum) +'" "  onkeyup="keyFunString($(this),30)" onpaste="keyFunString($(this),30)" >'
+                + '</td>'
+                + '<td style="text-align: center;" ><a href="javascript:void(0)" onclick="delColor(this)" >删除</a></td>'
+                + '</tr>';
+
     }
     if(allProcMethodIsBack == 1 ){ //需要寄回
         $("#addBackProduct").html(colorHtml);
@@ -1473,12 +1475,14 @@ function addCustomerReady(){
         $("#addBackProduct").find(".input-code").each(function () {
             var machineNo = $(this).val();    //机器编号
             var number = $(this).parents("tr").find(".input-itemNum").eq(0).val();    //数量
+            var itemId = $(this).parents("tr").find(".input-item-id").val();    //数量
             if (number != null && number != "" && number != 0) {
                 var product = new Object();
                 product.colorBar = $(this).parent().find(".input-69code").val();
                 product.sendProdcueNumber = number;
                 product.closedProdcueNumber = number;
                 product.closedProdcueMachineNo = machineNo;
+                product.itemId = itemId;
                 closedProdcues.push(product);
             }
         });