wangxiaoming 5 rokov pred
rodič
commit
934ea6d85f

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

@@ -469,4 +469,9 @@ public interface SalesOrderService {
      * 根据订单号查询订单
      */
     SalesOrder getSalesOrderByOrderId(String salesOrderId);
+
+    /**
+     * 修改订单项
+     */
+    Integer updateOrderItemObj(SalesOrderItem salesOrderItem);
 }

+ 7 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/dm/SupplierProductService.java

@@ -34,4 +34,11 @@ public interface SupplierProductService {
      * @return Integer
      */
     Integer  saveList(List<SupplierProduct>  supplierProductList);
+
+    /**
+     * 查询单条数据
+     * @param  colorId
+     * @return  supplierProduct
+     */
+    SupplierProduct  getSupplierProductByColorId(Integer colorId);
 }

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

@@ -1568,6 +1568,11 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         return salesOrderMapper.getSalesOrderByOrderId(salesOrderId);
     }
 
+    @Override
+    public Integer updateOrderItemObj(SalesOrderItem salesOrderItem) {
+        return salesOrderMapper.updateOrderItemObj(salesOrderItem);
+    }
+
     public void calculationTotal(SalesOrder salesOrder,List<SalesOrderItem> salesOrderItemList){
         Integer salesAmount=0,salesPayMoney=0;
 

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/dm/SupplierProductServiceImpl.java

@@ -53,4 +53,9 @@ public class SupplierProductServiceImpl  implements SupplierProductService {
     public  Integer  saveList(List<SupplierProduct> supplierProductList){
         return  supplierProductMapper.saveList(supplierProductList);
     }
+
+    @Override
+    public SupplierProduct getSupplierProductByColorId(Integer colorId) {
+        return supplierProductMapper.getSupplierProductByColorId(colorId);
+    }
 }

+ 5 - 3
watero-rst-service/src/main/java/com/iamberry/rst/service/dm/mapper/dmDealerMapper.xml

@@ -67,16 +67,18 @@
             <include refid="Base_List" />,
         cax.coop_agree_before_date,
         cax2.coop_agree_end_date,
-        SUM(fr.fr_amount) AS  frAmount,
+        fr_amount AS frAmount,
         sa.admin_name AS adminName
-        from tb_rst_dm_dealer t
+        from
+        (
+        SELECT xx.*,SUM(fr.fr_amount) AS fr_amount FROM tb_rst_dm_dealer xx LEFT JOIN tb_rst_dm_financial_receipt fr ON xx.dealer_id = fr.dealer_id GROUP BY xx.dealer_id
+        )t
         LEFT JOIN (
             SELECT ca.dealer_id,MIN(ca.coop_agree_before_date) AS coop_agree_before_date FROM tb_rst_dm_cooperation_agree ca GROUP BY ca.dealer_id
         )cax ON cax.dealer_id = t.dealer_id
         LEFT JOIN (
             SELECT ca2.dealer_id,MAX(ca2.coop_agree_end_date) AS coop_agree_end_date FROM tb_rst_dm_cooperation_agree ca2 GROUP BY ca2.dealer_id
         )cax2 ON cax2.dealer_id = t.dealer_id
-        LEFT JOIN tb_rst_dm_financial_receipt fr ON t.dealer_id = fr.dealer_id
         LEFT JOIN tb_rst_dm_dealer_channel dc ON t.dealer_id = dc.dealer_id
         LEFT JOIN tb_rst_dm_dealer_channel_store dcs ON dcs.deal_channel_id = dc.deal_channel_id
         LEFT JOIN tb_rst_store_info si ON si.store_id = dcs.store_id

+ 178 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/dm/DmDealerController.java

@@ -1,13 +1,22 @@
 package com.iamberry.rst.controllers.dm;
 
+import com.iamberry.rst.core.cm.SalesOrder;
+import com.iamberry.rst.core.cm.SalesOrderItem;
 import com.iamberry.rst.core.cm.StoreInfo;
 import com.iamberry.rst.core.dm.*;
+import com.iamberry.rst.core.order.OrderWarehouse;
+import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.sys.Admin;
+import com.iamberry.rst.core.tools.LogisticsInfo;
+import com.iamberry.rst.faces.cm.SalesOrderService;
 import com.iamberry.rst.faces.cm.StoreInfoService;
 import com.iamberry.rst.faces.dm.*;
+import com.iamberry.rst.faces.order.LogisticsInfoService;
+import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sys.SysService;
+import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.rst.utils.UploadFileUtils;
@@ -32,6 +41,7 @@ import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.List;
 import java.util.Objects;
 
@@ -59,6 +69,17 @@ public class DmDealerController {
     @Autowired
     private DealerChannelStoreService dealerChannelStoreService;
 
+    @Autowired
+    private SalesOrderService salesOrderService;
+    @Autowired
+    private LogisticsInfoService logisticsInfoService;
+    @Autowired
+    private ProductService productService;
+    @Autowired
+    private SupplierProductService supplierProductService;
+    @Autowired
+    private SalesOrderMapper salesOrderMapper;
+
     /**
      * 查询客户基本信息列表
      *
@@ -519,4 +540,161 @@ public class DmDealerController {
         }
     }
 
+    /**
+     * 分页查询订单列表信息
+     * @param request
+     * @param salesOrder
+     * @param pageSize
+     * @param pageNO
+     * @param totalNum
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("dm:order_statistic:list")
+    @RequestMapping("/list_order_for_dm")
+    public ModelAndView listOrderForDm(HttpServletRequest request, SalesOrder salesOrder,
+                                      @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
+                                      @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
+                                      @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) throws Exception {
+        ModelAndView mv = new ModelAndView("dm/dealer/dm_order_statistics");
+        salesOrder.setIsCustmerAddOrder(2);
+        //分页获取订单信息
+        PagedResult<SalesOrder> pagedResult = salesOrderService.salesOrderListAndItemPage(pageNO, pageSize, salesOrder,totalNum == 0);
+        if (totalNum != 0) {
+            pagedResult.setTotal(totalNum);
+        }
+        List<StoreInfo> listStoreInfo = storeInfoService.listStore(new StoreInfo());
+        List<LogisticsInfo> logisticsInfoList = logisticsInfoService.getLogisticsInfoList(new LogisticsInfo());
+        List<ProductColor> productColorList = productService.listproductAndColor(new ProductColor());
+        List<OrderWarehouse> listOrderWarehouse = salesOrderService.listOrderWarehouse();
+        List<DmDealer> dmDealerList = dmDealerService.getDmDealerList(new DmDealer());
+        StitchAttrUtil.getSa()
+                .addDatePro("yyyy-MM-dd HH:mm:ss","startDate","endDate")
+                .addNoPro("salesOrderItemList","complaintDetectInfoList")
+                .setModelAndView(salesOrder, mv, "/admin/await_send/order_statistics", pagedResult);
+
+        mv.addObject("listOrderWarehouse",listOrderWarehouse);
+        mv.addObject("listStoreInfo",listStoreInfo);
+        mv.addObject("logisticsInfoList",logisticsInfoList);
+        mv.addObject("productColorList",productColorList);
+        mv.addObject("dmDealerList",dmDealerList);
+        return mv;
+    }
+
+    /**
+     *
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/order_update")
+    public ResponseJson order_update(HttpServletRequest request) {
+        ResponseJson rj = ResponseJson.getSUCCESS();
+        Integer flag = 0;
+
+        SalesOrder salesOrder = new SalesOrder();
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(2019,8,01,00,00,00);
+        salesOrder.setStartDate(calendar.getTime());  //startDate
+
+        Calendar endCalendar = Calendar.getInstance();
+        endCalendar.set(2019,8,10,00,00,00);
+        salesOrder.setEndDate(endCalendar.getTime());
+
+        salesOrder.setSalesStatus(1);
+        List<SalesOrder> salesOrderList = salesOrderService.salesOrderListAndItem(salesOrder);
+
+        for (SalesOrder so : salesOrderList) {//201909090002
+
+            SalesOrder newSo = new SalesOrder();
+
+            if(so.getSalesStatus() != 1){
+                continue;
+            }
+
+            if(so.getSalesCustomerId() != null){
+                continue;
+            }
+
+            if(so.getSalesPayMoney() == null || so.getSalesPayMoney() == 0 || so.getSalesPayMoney() == 2147483647){
+                Integer price = 0;
+                StoreInfo storeInfo = storeInfoService.getStoreInfoById(so.getSalesStoreId());
+                DealerChannel dealerChannel = new DealerChannel();
+                dealerChannel.setStoreId(so.getSalesStoreId());
+                List<DealerChannel>  dealerChannelList = dealerChannelService.getDealerChannelList(dealerChannel);
+                if(dealerChannelList!= null && dealerChannelList.size() > 0){
+                    dealerChannel = dealerChannelList.get(0);
+                }else{
+                    System.out.println("未查询到客户信息!订单id:"+so.getSalesId()+"店铺信息:"+storeInfo.getStoreName());
+                    continue;
+                }
+                for (SalesOrderItem salesOrderItem:so.getSalesOrderItemList()) {
+                    SalesOrderItem newSoi = new SalesOrderItem();
+                    newSoi.setItemNum(salesOrderItem.getItemNum());
+                    newSoi.setItemId(salesOrderItem.getItemId());
+
+                    boolean isUpdateItem = false;
+                    if(salesOrderItem.getItemCostTotal() == null ||salesOrderItem.getItemCostTotal() == 0){
+                        SupplierProduct supplierProduct = supplierProductService.getSupplierProductByColorId(salesOrderItem.getItemColorId());
+                        if(supplierProduct != null){
+                            newSoi.setItemCost(supplierProduct.getSpCost());
+                            newSoi.setItemCostTotal(supplierProduct.getSpCost() * newSoi.getItemNum());
+                            isUpdateItem = true;
+                        }else{
+                            System.out.println("确认订单失败-未查询到该产品("+ salesOrderItem.getItemProductName() +"-"+ salesOrderItem.getItemProductColor() +")的成本价格订单id:"+so.getSalesId());
+                        }
+                    }
+
+                    if(salesOrderItem.getItemTotal() == null || salesOrderItem.getItemTotal() == 0 ){
+                        DealerProduct dealerProduct = new DealerProduct();
+                        dealerProduct.setDealerId(dealerChannel.getDealerId());
+                        dealerProduct.setColorBar(salesOrderItem.getItemColorBar());
+                        List<DealerProduct> dealerProductList = dealerProductService.getDealerProductAndStoreList(dealerProduct);
+                        for (DealerProduct dp:dealerProductList) {
+                            if(1 == dp.getDealProdStoreArea()){
+                                // 1:全部店铺
+                                newSoi.setItemProductDiscount(dp.getDealProdPrice());
+                                newSoi.setItemProductPrice(dp.getDealProdPrice());
+                            }else{
+                                // 2:部分店铺
+                                for (DealerProductStore dps:dp.getDealerProductStoreList()) {
+                                    if(dealerChannel.getDealChannelId().equals(dps.getDealChannelId())){
+                                        newSoi.setItemProductDiscount(dp.getDealProdPrice());
+                                        newSoi.setItemProductPrice(dp.getDealProdPrice());
+                                    }
+                                }
+                            }
+                        }
+                        newSoi.setItemTotal(newSoi.getItemProductDiscount()*newSoi.getItemNum());
+                        isUpdateItem = true;
+                        price += newSoi.getItemTotal();
+                    }else{
+                        price += salesOrderItem.getItemTotal();
+                    }
+                    if(isUpdateItem){
+                        flag = salesOrderService.updateOrderItemObj(newSoi);
+                        if(flag < 1){
+                            System.out.println("修改订单项失败!订单id:"+so.getSalesId());
+                        }
+                    }
+                }
+                newSo.setSalesId(so.getSalesId());  //salesId
+                newSo.setSalesAmount(price);
+                newSo.setSalesPayMoney(price);
+                flag = salesOrderMapper.updateSalesOrder(newSo);
+                if(flag < 1){
+                    System.out.println("修改订单失败!订单id:"+so.getSalesId());
+                }
+            }
+        }
+
+        if(flag > 0){
+            rj.setResultMsg("");
+            return rj;
+        }else{
+            rj = ResponseJson.getFAILURE();
+            return  rj;
+        }
+    }
+
 }

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

@@ -2001,7 +2001,7 @@ public class AdminSalesOrderController {
                                 }else{
                                     // 2:部分店铺
                                     for (DealerProductStore dps:dp.getDealerProductStoreList()) {
-                                        if(storeId.equals(dps.getStoreId())){
+                                        if(dealerChannel.getDealChannelId().equals(dps.getDealChannelId())){
                                             pc.setColorDiscount(dp.getDealProdPrice());
                                             pc.setColorPrice(dp.getDealProdPrice());
                                         }

+ 0 - 4
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java

@@ -5,7 +5,6 @@ import com.iamberry.rst.core.cm.SalesOrder;
 import com.iamberry.rst.core.cm.SalesOrderItem;
 import com.iamberry.rst.core.cm.StoreInfo;
 import com.iamberry.rst.core.cm.StoreShip;
-import com.iamberry.rst.core.dm.DmDealer;
 import com.iamberry.rst.core.fm.ComplaintDetectInfo;
 import com.iamberry.rst.core.fm.InventoryInfo;
 import com.iamberry.rst.core.fm.InventoryLog;
@@ -915,8 +914,6 @@ public class AwaitSendController {
         List<LogisticsInfo> logisticsInfoList = logisticsInfoService.getLogisticsInfoList(new LogisticsInfo());
         List<ProductColor> productColorList = productService.listproductAndColor(new ProductColor());
         List<OrderWarehouse> listOrderWarehouse = salesOrderService.listOrderWarehouse();
-
-        List<DmDealer> dmDealerList = dmDealerService.getDmDealerList(new DmDealer());
         StitchAttrUtil.getSa()
                 .addDatePro("yyyy-MM-dd HH:mm:ss","startDate","endDate")
                 .addNoPro("salesOrderItemList")
@@ -926,7 +923,6 @@ public class AwaitSendController {
         mv.addObject("listStoreInfo",listStoreInfo);
         mv.addObject("logisticsInfoList",logisticsInfoList);
         mv.addObject("productColorList",productColorList);
-        mv.addObject("dmDealerList",dmDealerList);
 
         return mv;
     }

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 297 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/dm/dealer/dm_order_statistics.ftl


+ 0 - 9
watero-rst-web/src/main/webapp/WEB-INF/views/order/statistics/order_statistics.ftl

@@ -55,15 +55,6 @@
                     <option value ="3" <#if salesOrder.salesStatus??><#if salesOrder.salesStatus == 3 >selected="selected"</#if></#if>>作废</option>
                 </select>
 
-                <select class="select" name="dealerId" id="dealerId" style="height: 30px;width: 120px;margin: 0px;margin-bottom: 10px;">
-                    <option value="">客户信息</option>
-                    <#if dmDealerList?? &&  (dmDealerList?size > 0) >
-                        <#list dmDealerList as dmDealer>
-                            <option value="${dmDealer.dealerId!''}" <#if salesOrder.dealerId??><#if salesOrder.dealerId == dmDealer.dealerId >selected="selected"</#if></#if>>${dmDealer.dealerName!''}</option>
-                        </#list>
-                    </#if>
-                </select>
-
                 <select class="select" name="salesStoreId" id="salesStoreId" style="height: 30px;width: 120px;margin: 0px;margin-bottom: 10px;">
                     <option value="">店铺</option>
                     <#if listStoreInfo?? &&  (listStoreInfo?size > 0) >