Pārlūkot izejas kodu

feat: 增加订单、送货提醒的数量统计接口

suntg 6 gadi atpakaļ
vecāks
revīzija
b9d0777fb3

+ 10 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderAllDao.java

@@ -7,6 +7,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.Collection;
 import java.util.List;
 
 @Repository
@@ -68,4 +69,13 @@ public interface PurchaseOrderAllDao extends JpaSpecificationExecutor<PurchaseOr
 	public int getTodoCountByEnUUAndUserUUAndStatus(@Param("enUU") Long enUU, @Param("userUU") Long userUU,
 			@Param("status") Short status);
 
+	/**
+	 * 根据供应商UU号和分配客户的UU号获取订单个数
+	 * @param vendUU
+	 * @param enUUs
+	 * @return
+	 */
+	@Query("select count(o) from PurchaseOrderAll o where o.vendUU = :vendUU and o.enUU in :enUUs")
+	int countByVendUUAndEnUUs(@Param("vendUU") Long vendUU, @Param("enUUs") Collection<Long> enUUs);
+
 }

+ 20 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderReceivedDao.java

@@ -3,8 +3,12 @@ package com.uas.platform.b2b.dao;
 import com.uas.platform.b2b.model.PurchaseOrderReceived;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.Collection;
+
 /**
   * @author wangmh
   * @version 创建时间:2017年6月23日
@@ -13,4 +17,20 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface PurchaseOrderReceivedDao extends JpaSpecificationExecutor<PurchaseOrderReceived> , JpaRepository<PurchaseOrderReceived, Long>{
 
+    /**
+     * 根据供应商UU号和分配客户的UU号获取订单个数
+     * @param vendUU
+     * @param enUUs
+     * @return
+     */
+    @Query("select count(o) from PurchaseOrderReceived o where o.vendUU = :vendUU and o.enUU in :enUUs")
+    int countByVendUUAndEnUUs(@Param("vendUU") Long vendUU, @Param("enUUs") Collection<Long> enUUs);
+
+    /**
+     * 根据供应商UU号获取订单个数
+     * @param vendUU
+     * @return
+     */
+    @Query("select count(o) from PurchaseOrderReceived o where o.vendUU = :vendUU")
+    int countByVendUU(@Param("vendUU") Long vendUU);
 }

+ 28 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderWaitingDao.java

@@ -2,11 +2,15 @@ package com.uas.platform.b2b.dao;
 
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.jpa.repository.query.Procedure;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import com.uas.platform.b2b.model.PurchaseOrderWaiting;
 
+import java.util.Collection;
+
 /** 
   * @author yujia 
   * @version 创建时间:2015年12月29日 下午1:48:26 
@@ -30,4 +34,28 @@ public interface PurchaseOrderWaitingDao extends JpaSpecificationExecutor<Purcha
 	 */
 	@Procedure(procedureName = "purc$orders_wait_status_update")
 	public void updateStatusForPurc(Long enuu);
+
+	/**
+	 * 根据客户企业UU号获取数量
+	 * @param enUU
+	 * @return
+	 */
+    int countByEnUU(Long enUU);
+
+	/**
+	 * 根据供应商UU号和分配客户的UU号获取订单个数
+	 * @param vendUU
+	 * @param enUUs
+	 * @return
+	 */
+	@Query("select count(o) from PurchaseOrderWaiting o where o.vendUU = :vendUU and o.enUU in :enUUs")
+	int countByVendUUAndEnUUs(@Param("vendUU") Long vendUU, @Param("enUUs") Collection<Long> enUUs);
+
+	/**
+	 * 根据供应商UU号获取订单个数
+	 * @param vendUU
+	 * @return
+	 */
+	@Query("select count(o) from PurchaseOrderWaiting o where o.vendUU = :vendUU")
+	int countByVendUU(@Param("vendUU") Long vendUU);
 }

+ 1 - 0
src/main/java/com/uas/platform/b2b/listener/GlobalExceptionHandler.java

@@ -78,6 +78,7 @@ public class GlobalExceptionHandler {
     @ResponseBody
     @ExceptionHandler(value = Exception.class)
     public ResponseEntity<String> defaultErrorHandler(HttpServletRequest request, Exception e, HttpServletResponse response) throws UnsupportedEncodingException {
+        e.printStackTrace();
         String jsonStr = JSON.toJSONString(e.getStackTrace());
         List<ExceptionMsg> msgList = FlexJsonUtils.fromJsonArray(jsonStr, ExceptionMsg.class);
         List<ExceptionMsg> msgs = new ArrayList<>();

+ 18 - 7
src/main/java/com/uas/platform/b2b/mall2/controller/PurchaseOrderController.java

@@ -35,16 +35,13 @@ import org.springframework.web.servlet.ModelAndView;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
- * 采购订单
+ * 提供给新商城的采购订单接口
  * 
- * @author hejq
- * @date 2018-07-27 9:05
+ * @author suntg
+ * @date 2019-3-26 17:08:03
  */
 @Controller("mall2.PurchaseOrderController")
 @RequestMapping("/mall2/purchase/orders")
@@ -211,4 +208,18 @@ public class PurchaseOrderController {
 		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
 		return purchaseOrderService.findWaitingOrders(pageInfo, filter);
 	}
+
+	/**
+	 * 获取单据数据统计
+	 * @return
+	 */
+	@RequestMapping(value = "/counts", method = RequestMethod.GET)
+	@ResponseBody
+	public ModelMap getCounts() {
+		ModelMap modelMap = new ModelMap();
+		Long enUU = SystemSession.getUser().getEnterprise().getUu();
+		modelMap.put("all", purchaseOrderService.countPurchaseAllOrders(enUU));
+		modelMap.put("waiting", purchaseOrderService.countPurchaseWaitingOrders(enUU));
+		return modelMap;
+	}
 }

+ 39 - 0
src/main/java/com/uas/platform/b2b/mall2/controller/SaleNoticeController.java

@@ -0,0 +1,39 @@
+package com.uas.platform.b2b.mall2.controller;
+
+import com.uas.platform.b2b.model.SearchFilter;
+import com.uas.platform.b2b.service.PurchaseNoticeService;
+import com.uas.platform.b2b.support.SystemSession;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+
+/**
+ * 提供给新商城的送货提醒接口
+ * @author suntg
+ * @date 2019-3-26 16:47:33
+ */
+@Controller("mall2.SaleNoticeController")
+@RequestMapping("/mall2/sale/notice")
+public class SaleNoticeController {
+
+    @Autowired
+    private PurchaseNoticeService purchaseNoticeService;
+
+    /**
+     * 获取单据数据统计
+     * @return
+     */
+    @RequestMapping(value = "/counts", method = RequestMethod.GET)
+    @ResponseBody
+    public ModelMap getCounts() {
+        ModelMap modelMap = new ModelMap();
+        Long vendUU = SystemSession.getUser().getEnterprise().getUu();
+        modelMap.put("all", purchaseNoticeService.countAll(vendUU));
+        modelMap.put("todo", purchaseNoticeService.countTodo(vendUU));
+        return modelMap;
+    }
+}

+ 24 - 7
src/main/java/com/uas/platform/b2b/mall2/controller/SaleOrderController.java

@@ -37,16 +37,13 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
- * 卖家对订单的操作
- * 
- * @author yingp
+ * 提供给新商城的销售订单接口
  * 
+ * @author suntg
+ * @date 2019-3-26 17:08:29
  */
 @SuppressWarnings("deprecation")
 @Controller("mall2.SaleOrderController")
@@ -359,4 +356,24 @@ public class SaleOrderController {
 		return purchaseOrderService.findWaitingOrders(pageInfo, filter);
 	}
 
+	/**
+	 * 获取单据数据统计
+	 * @return
+	 */
+	@RequestMapping(value = "/counts", method = RequestMethod.GET)
+	@ResponseBody
+	public ModelMap getCounts() {
+		ModelMap modelMap = new ModelMap();
+		Long vendUU = SystemSession.getUser().getEnterprise().getUu();
+		SearchFilter distribute = userService.distribute();
+		Collection enUUs = null;
+		if (distribute != null && distribute.getDistribute() != null) {
+			enUUs = distribute.getDistribute();
+		}
+		modelMap.put("all", purchaseOrderService.countSaleAllOrders(vendUU, enUUs));
+		modelMap.put("received", purchaseOrderService.countSaleReceivedOrders(vendUU, enUUs));
+		modelMap.put("waiting", purchaseOrderService.countSaleWaitingOrders(vendUU, enUUs));
+		return modelMap;
+	}
+
 }

+ 14 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseNoticeService.java

@@ -284,4 +284,18 @@ public interface PurchaseNoticeService {
 	 * @return SPage封装的数据
 	 */
     SPage<PurchaseNotice> findNoticesByPageInfo(PageInfo pageInfo, String keyword, SearchFilter filter, String state);
+
+	/**
+	 * 根据供应商UU号获取所有的送货提醒数量
+	 * @param vendUU
+	 * @return
+	 */
+	long countAll(Long vendUU);
+
+	/**
+	 * 根据供应商UU号获取待发货的送货提醒数量
+	 * @param vendUU
+	 * @return
+	 */
+	int countTodo(Long vendUU);
 }

+ 38 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseOrderService.java

@@ -17,6 +17,7 @@ import com.uas.platform.core.model.PageInfo;
 import com.uas.search.b2b.model.SPage;
 import org.springframework.data.domain.Page;
 
+import java.util.Collection;
 import java.util.List;
 
 public interface PurchaseOrderService {
@@ -344,4 +345,41 @@ public interface PurchaseOrderService {
      */
     void replyByBatch(String idString, String username, String userip, Long enuu, Long useruu, Long date);
 
+	/**
+	 * 根据供应商UU号和分配客户UU号获取订单个数
+	 * @param vendUU
+	 * @param enUUs
+	 * @return
+	 */
+    long countSaleAllOrders(Long vendUU, Collection enUUs);
+
+	/**
+	 * 根据供应商UU号和分配客户UU号获取待发货订单个数
+	 * @param vendUU
+	 * @param enUUs
+	 * @return
+	 */
+    int countSaleWaitingOrders(Long vendUU, Collection enUUs);
+
+	/**
+	 * 根据供应商UU号和分配客户UU号获取已收货订单个数
+	 * @param vendUU
+	 * @param enUUs
+	 * @return
+	 */
+    int countSaleReceivedOrders(Long vendUU, Collection enUUs);
+
+	/**
+	 * 根据客户UU号获取订单个数
+	 * @param enUu
+	 * @return
+	 */
+	long countPurchaseAllOrders(Long enUu);
+
+	/**
+	 * 根据客户UU号获取待发货订单个数
+	 * @param enUu
+	 * @return
+	 */
+    int countPurchaseWaitingOrders(Long enUu);
 }

+ 22 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurchaseNoticeServiceImpl.java

@@ -1076,4 +1076,26 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
         Set<Long> idSet = new HashSet<>(ids);
         return purchaseNoticeDao.findAll(idSet);
     }
+
+	/**
+	 * 根据供应商UU号获取所有的送货提醒数量
+	 *
+	 * @param vendUU
+	 * @return
+	 */
+	@Override
+	public long countAll(Long vendUU) {
+		return purchaseNoticeDao.countByVendUU(vendUU);
+	}
+
+	/**
+	 * 根据供应商UU号获取待发货的送货提醒数量
+	 *
+	 * @param vendUU
+	 * @return
+	 */
+	@Override
+	public int countTodo(Long vendUU) {
+		return purchaseNoticeDao.getCountByVendUUAndStatus(vendUU, (short) Status.NOT_REPLY.value());
+	}
 }

+ 36 - 6
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -73,12 +73,7 @@ import javax.persistence.criteria.JoinType;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import javax.persistence.criteria.SetJoin;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * 采购订单
@@ -842,4 +837,39 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
         List<PurchaseOrderReply> replies = findReplyByOrderItem(orderItemId);
         return CollectionUtils.isEmpty(replies) ? 0 : replies.get(0).getQty();
     }
+
+	@Override
+    public long countSaleAllOrders(Long vendUU, Collection enUUs) {
+		if (CollectionUtils.isEmpty(enUUs)) {
+			return purchaseOrderAllDao.countByVendUU(vendUU);
+		}
+		return purchaseOrderAllDao.countByVendUUAndEnUUs(vendUU, enUUs);
+	}
+
+	@Override
+	public int countSaleWaitingOrders(Long vendUU, Collection enUUs) {
+		if (CollectionUtils.isEmpty(enUUs)) {
+			return purchaseOrderWaitingDao.countByVendUU(vendUU);
+		}
+		return purchaseOrderWaitingDao.countByVendUUAndEnUUs(vendUU, enUUs);
+	}
+
+	@Override
+	public int countSaleReceivedOrders(Long vendUU, Collection enUUs) {
+    	if (CollectionUtils.isEmpty(enUUs)) {
+			return purchaseOrderReceivedDao.countByVendUU(vendUU);
+		}
+		return purchaseOrderReceivedDao.countByVendUUAndEnUUs(vendUU, enUUs);
+	}
+
+	@Override
+	public long countPurchaseAllOrders(Long enUu) {
+		return purchaseOrderAllDao.findOrderCountByEnUU(enUu);
+	}
+
+	@Override
+	public int countPurchaseWaitingOrders(Long enUu) {
+    	return purchaseOrderWaitingDao.countByEnUU(enUu);
+	}
+
 }