浏览代码

增加对揽件以后的订单处理

xian 4 年之前
父节点
当前提交
6fd1b99abd

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

@@ -152,11 +152,20 @@ public class SalesOrder implements Serializable {
     private Integer feeCharges;             //维修收费
     private Date salesSignTime;             // 签收时间
     private Integer salesIsErrorSign;       // 是否签收,1:异常签收
+    private Integer salesErrorState;      // 异常状态,1:无异常 2:快递遗失 3:快递破损 4:其他
 
     private List<SalesOrderItem> salesOrderItemList = new ArrayList<SalesOrderItem>();
     private List<SalesOrderItem> suSalesOrderItemList = new ArrayList<SalesOrderItem>();
     private List<ComplaintDetectInfo> complaintDetectInfoList;
 
+    public Integer getSalesErrorState() {
+        return salesErrorState;
+    }
+
+    public void setSalesErrorState(Integer salesErrorState) {
+        this.salesErrorState = salesErrorState;
+    }
+
     public Integer getSignErrorNum() {
         return signErrorNum;
     }

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

@@ -394,7 +394,7 @@
                     AND sales_status != 3 and sales_deliver = 2 AND sales_shipping_status = 1 AND sales_status = 1 AND sales_post_firm IS NOT NULL AND order_case_date IS NULL AND TIMESTAMPDIFF(HOUR,sales_deliver_time,NOW()) &gt;= 24
                 </if>
                 <if test="salesIsErrorSign != null and salesIsErrorSign == 1">
-                    AND sales_status != 3 and sales_deliver = 2 AND sales_shipping_status = 1 AND sales_status = 1 AND sales_post_firm IS NOT NULL AND order_case_date IS NOT NULL AND sales_send_time != order_case_date AND sales_sign_time is NULL AND sales_create_time >= '2020.05.01' AND TIMESTAMPDIFF(HOUR,order_case_date,NOW()) >= 85
+                    AND sales_status != 3 and sales_deliver = 2 AND sales_error_state = 1 AND sales_shipping_status = 1 AND sales_status = 1 AND sales_post_firm IS NOT NULL AND order_case_date IS NOT NULL AND sales_send_time != order_case_date AND sales_sign_time is NULL AND sales_create_time >= '2020.05.01' AND TIMESTAMPDIFF(HOUR,order_case_date,NOW()) >= 85
                 </if>
             </where>
             GROUP BY
@@ -1375,7 +1375,10 @@
           sales_process_refund = #{salesProcessRefund},
       </if >
       <if test="salesDeliver != null">
-          sales_deliver = #{salesDeliver}
+          sales_deliver = #{salesDeliver},
+      </if >
+      <if test="salesErrorState != null">
+          sales_error_state = #{salesErrorState}
       </if >
     </set>
     where sales_id = #{salesId}
@@ -2379,7 +2382,7 @@
         sum(CASE WHEN (sales_deliver = 2 AND sales_shipping_status = 1 AND sales_status = 1 AND sales_post_firm IS NOT NULL AND order_case_date IS NULL AND TIMESTAMPDIFF(HOUR,sales_deliver_time,NOW()) &gt;= 3 AND TIMESTAMPDIFF(HOUR,sales_deliver_time,NOW()) &lt;= 24) then 1 else 0 end) AS tookTimeout,
         sum(CASE WHEN (sales_deliver = 2 AND sales_shipping_status = 1 AND sales_status = 1 AND sales_post_firm IS NOT NULL AND order_case_date IS NULL AND TIMESTAMPDIFF(HOUR,sales_deliver_time,NOW()) &gt;= 24) then 1 else 0 end) AS tookAbnormal,
         sum(CASE WHEN (TO_DAYS(sales_deliver_time) = TO_DAYS(NOW())  ) then 1 else 0 end) AS haveOutbound,
-        SUM(CASE WHEN (sales_deliver = 2 AND sales_shipping_status = 1 AND sales_status = 1 AND sales_post_firm IS NOT NULL AND order_case_date IS NOT NULL AND sales_send_time != order_case_date AND sales_sign_time is NULL AND sales_create_time >= '2020.05.01' AND TIMESTAMPDIFF(HOUR,order_case_date,NOW()) >= 85) then 1 else 0 end) AS signErrorNum
+        SUM(CASE WHEN (sales_deliver = 2 AND sales_shipping_status = 1 AND sales_error_state = 1 AND sales_status = 1 AND sales_post_firm IS NOT NULL AND order_case_date IS NOT NULL AND sales_send_time != order_case_date AND sales_sign_time is NULL AND sales_create_time >= '2020.05.01' AND TIMESTAMPDIFF(HOUR,order_case_date,NOW()) >= 85) then 1 else 0 end) AS signErrorNum
         FROM
         tb_rst_sales_order_info
         WHERE

+ 23 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java

@@ -1503,6 +1503,29 @@ public class AdminSalesOrderController {
     }
 
     /**
+     * 修改订单异常状态
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/updateOrderErrorState")
+    @RequiresPermissions("salesOrder:select:salesOrder")
+    public ResponseJson updateOrderErrorState(SalesOrder salesOrder) {
+        if(salesOrder == null  || salesOrder.getSalesId() == null || salesOrder.getSalesErrorState() == null){
+            return ResponseJson.getFAILURE();
+        }
+        int num = salesOrderService.updateSalesOrder(salesOrder);
+        if(num > 0){
+            //添加操作跟踪信息
+            OrderTracking orderTracking = new OrderTracking();
+            orderTracking.setAdminId(AdminUtils.getLoginAdminId());
+            orderTracking.setSalesDealCode(salesOrderService.getSalesOrderByIdConcise(salesOrder.getSalesId()).getSalesDealCode());
+            orderTracking.setTrackingDesc("修改订单异常状态");
+            salesOrderService.addTracking(orderTracking);
+        }
+        return num <= 0 ? ResponseJson.getFAILURE() : ResponseJson.getSUCCESS();
+    }
+
+    /**
      * 搜索订单列表弹出框
      *
      * @return

+ 12 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/sales_order_detail.ftl

@@ -138,6 +138,18 @@
                     <span>${(order.batchCreateTime?string("yyyy-MM-dd HH:mm:ss"))!''}</span>
                 </td>
             </tr>
+            <tr>
+                <th width="10">异常信息:</th>
+                <td width="10" colspan="4">
+                    <#if order.salesErrorState == 1>无异常
+                    <#elseif order.salesErrorState == 2>快递遗失
+                    <#elseif order.salesErrorState == 3>快递破损
+                    <#elseif order.salesErrorState == 4>其他
+                    <#else>
+                        未知
+                    </#if>
+                </td>
+            </tr>
             </thead>
         </table>
         <div class="row cl">

+ 48 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/sales_order_list.ftl

@@ -357,6 +357,9 @@
                         <a class="invalid_order_target" style="text-decoration:none;display: none" href="javascript:void(0);" title="作废订单" onclick="invalidation_order(${order.salesId!''})">
                             <i class="Hui-iconfont">&#xe631;</i>
                         </a>
+                        <a class="invalid_order_target" style="text-decoration:none;display: none" href="javascript:void(0);" title="订单异常" onclick="sign_error_order_state(${order.salesId!''})">
+                            <i class="Hui-iconfont">&#xe633;</i>
+                        </a>
                         <a class="del_order_target" style="text-decoration:none;display: none" href="javascript:void(0);" title="删除订单" onclick="delSalesOrder(${order.salesId!''})">
                             <i class="Hui-iconfont">&#xe609;</i>
                         </a>
@@ -514,6 +517,51 @@
         layer_show_norm("订单详情","${path}/admin/salesOrder/select_sales_order?salesId="+orderSaleId,6);
     }
 
+    /* 订单标记异常 */
+    function sign_error_order_state(id) {
+        (function(id) {
+            layer.open({
+                title: '异常状态',
+                btn: ['确定'],
+                content:
+                        '<div class="layui-form-item">' +
+                        '<label class="layui-form-label">异常状态</label>' +
+                        '<div class="layui-input-block">' +
+                        '<select name="orderErrorState" id="orderErrorState" lay-filter="range">' +
+                        '<option value="2">快递遗失</option>' +
+                        '<option value="3">快递破损</option>' +
+                        '<option value="4">其他</option>' +
+                        '</select>' +
+                        '</div>' +
+                        '</div>',
+                yes: function (index) {
+                    let state = $("#orderErrorState").val();
+                    $.ajax({
+                        type: "POST",
+                        data: {
+                            "salesId" : id,
+                            "salesErrorState":state
+                        },
+                        url: "${path}/admin/salesOrder/updateOrderErrorState",
+                        async: false,
+                        success: function(res){
+                            if(res.resultCode == 200 && res.returnCode == 200){
+                                layer.msg("操作成功!",{icon: 1,time:3000},function(){
+                                    location.reload();
+                                });
+                            }else{
+                                layer.alert("操作失败!");
+                            }
+                        },
+                        error: function(XmlHttpRequest, textStatus, errorThrown){
+                            layer.msg("操作失败,请稍后重试!",{icon: 2,time:3000});
+                        }
+                    });
+                }
+            })
+        }(id));
+    }
+
     /*手动发货*/
     function distribution_postFirm(title,url,w,h){
         layer_show(title,url,w,h);
@@ -580,9 +628,6 @@
     function hideDownloadOrderInfo() {
     }
 
-    $(function () {
-    });
-
     $(function() {
         //重新实例化一个编辑器,防止在上面的editor编辑器中显示上传的图片或者文件
         _editor = UE.getEditor('upload_ue',{

+ 1 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_print_List.ftl

@@ -220,7 +220,7 @@
                                     /* '<span style="position: absolute;padding-top: 100px;padding-left: -100px;" id="barcodeId">'+machineBarcode+'</span>' +*/
                                     '</div>');
                         }else if(produceName === "净水机基础版水箱" || produceName === "净水机银离子水箱"){
-                            $("#printlist").append('<div style="width: 242px;height: 122px;position: relative;">' +
+                            $("#printlist").append('<div style="width: 242px;height: 126px;position: relative;">' +
                                     '<span style="position: absolute;left: 10px;font-size: 14px;">'+produceName+'</span>' +
                                     '<span style="position: absolute;top: 25px;left: 10px;font-size: 12px;visibility:hidden;">型号:'+producePattern+'-'+produceModel+'</span>' +
                                     '<span style="position: absolute;top: 40px;left: 10px;font-size: 12px;visibility:hidden;">S/N</span>' +