Bläddra i källkod

销售任务数量汇总

yangzian 3 år sedan
förälder
incheckning
f88b143ece

+ 72 - 0
ruixuan-common/src/main/java/com/ruixuan/common/utils/DateUtils.java

@@ -8,8 +8,13 @@ import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.LocalTime;
 import java.time.ZoneId;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.time.ZonedDateTime;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.security.config.web.servlet.headers.HttpPublicKeyPinningDsl;
 
 
 /**
 /**
  * 时间工具类
  * 时间工具类
@@ -196,4 +201,71 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
 
 
         return Long.getLong(date.replaceAll("-",""));
         return Long.getLong(date.replaceAll("-",""));
     }
     }
+
+
+
+
+    /**
+     *
+     * @description: 获取当前周的开始和截至时间
+     * @param
+     * @return: java.util.Map
+     * @author: zianY
+     * @time: 2022/6/1
+     */
+    public static Map getWeekBeginAndEnd(){
+        Map<String,String> timeMap = new HashMap<>();
+        String begin = parseDateToStr(YYYY_MM_DD,getBeginDayOfWeek());
+        String end = parseDateToStr(YYYY_MM_DD,getEendDayOfWeek());
+        timeMap.put("begin",begin+" 00:00:00");
+        timeMap.put("end",end+" 23:59:59");
+        return timeMap;
+    }
+
+
+
+    /**
+     *
+     * @description: 获取本周开始时间
+     *
+     * @param
+     * @return: java.util.Date
+     * @author: zianY
+     * @time: 2022/6/1
+     */
+    public static Date getBeginDayOfWeek(){
+        Date date = new Date();
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
+        if (dayOfWeek ==  1){
+            dayOfWeek +=7;
+        }
+        cal.add(Calendar.DATE,2-dayOfWeek);
+        return cal.getTime();
+    }
+
+    /**
+     *
+     * @description: 获取本周结束时间
+     *
+     * @param
+     * @return: java.util.Date
+     * @author: zianY
+     * @time: 2022/6/1
+     */
+    public static Date getEendDayOfWeek(){
+
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(getBeginDayOfWeek());
+        cal.add(Calendar.DAY_OF_WEEK,6);
+        return cal.getTime();
+    }
+
+    public static void main(String[] args) {
+        System.out.println(parseDateToStr(YYYY_MM_DD,getBeginDayOfWeek()));
+        System.out.println(parseDateToStr(YYYY_MM_DD,getEendDayOfWeek()));
+    }
+
+
 }
 }

+ 9 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/controller/SaleClueInfoController.java

@@ -130,6 +130,15 @@ public class SaleClueInfoController extends BaseController {
 
 
 
 
 
 
+    @ApiOperation(value = "销售线索任务-查询用户代办以及本周完成的数量汇总",notes = "complete-本周完成数量;noStarted-我的待办")
+    @GetMapping(value = "/getTaskNumber")
+    public ResultResponse getTaskNumber(@ApiParam("当前用户id") @RequestParam(value = "userId") Long userId){
+        return saleClueInfoServiceImpl.getTaskNumber(userId);
+    }
+
+
+
+
 
 
 
 
 }
 }

+ 7 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleClueInfoMapper.java

@@ -77,6 +77,13 @@ public interface SaleClueInfoMapper {
      */
      */
      void updateSaleClueState(@Param(value = "sellerId") Long sellerId, @Param(value = "state") int state);
      void updateSaleClueState(@Param(value = "sellerId") Long sellerId, @Param(value = "state") int state);
 
 
+    /**
+     *  根据销售 查询未完成数量数量
+     * @param saleId 销售人员id
+     * @return
+     */
+     int selectSaleClueComplete(@Param(value = "saleId") Long saleId);
+
 
 
 
 
 
 

+ 9 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleClueRecordInfoMapper.java

@@ -22,4 +22,13 @@ public interface SaleClueRecordInfoMapper {
      * @param
      * @param
      */
      */
     SaleClueRecordInfoPojo getSaleClueRecordNumber(@Param(value = "sellerId") Long sellerId, @Param(value = "number")int number);
     SaleClueRecordInfoPojo getSaleClueRecordNumber(@Param(value = "sellerId") Long sellerId, @Param(value = "number")int number);
+
+    /**
+     * 根据销售 查询 本周有意向的数量
+     * @param saleId 销售人员id
+     * @param startTime 开始时间
+     * @param endTime 结束时间
+     * @return
+     */
+    int selectSaleClueIntention(@Param(value = "saleId") Long saleId, @Param(value = "startTime")String startTime,@Param(value = "endTime")String endTime);
 }
 }

+ 4 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/ISaleClueInfoService.java

@@ -28,4 +28,8 @@ public interface ISaleClueInfoService {
     ResultResponse<List<SaleClueInfoPojo>> selectSaleClueInfoBySellers(List<Long> sellerIds);
     ResultResponse<List<SaleClueInfoPojo>> selectSaleClueInfoBySellers(List<Long> sellerIds);
 
 
     ResultResponse saleClueDistribution(List<String> sellerIds, Long saleId,Long createUserId);
     ResultResponse saleClueDistribution(List<String> sellerIds, Long saleId,Long createUserId);
+
+
+    ResultResponse getTaskNumber(Long userId);
+
 }
 }

+ 31 - 1
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/SaleClueInfoServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.excel.EasyExcel;
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.PageInfo;
 import com.ruixuan.common.core.domain.ResultResponse;
 import com.ruixuan.common.core.domain.ResultResponse;
 import com.ruixuan.common.core.page.TableDataInfo;
 import com.ruixuan.common.core.page.TableDataInfo;
+import com.ruixuan.common.utils.DateUtils;
 import com.ruixuan.common.utils.PageUtils;
 import com.ruixuan.common.utils.PageUtils;
 import com.ruixuan.common.utils.StringUtils;
 import com.ruixuan.common.utils.StringUtils;
 import com.ruixuan.common.utils.file.FileTypeUtils;
 import com.ruixuan.common.utils.file.FileTypeUtils;
@@ -27,6 +28,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -212,7 +214,7 @@ public class SaleClueInfoServiceImpl implements ISaleClueInfoService {
 
 
     /**
     /**
      *
      *
-     * @description:
+     * @description: 销售线索-分配-显示数据信息
      *
      *
      * @param sellerIds 卖家id
      * @param sellerIds 卖家id
      * @return: com.ruixuan.common.core.domain.ResultResponse<java.util.List<com.ruixuan.salesLeads.pojo.SaleClueInfoPojo>>
      * @return: com.ruixuan.common.core.domain.ResultResponse<java.util.List<com.ruixuan.salesLeads.pojo.SaleClueInfoPojo>>
@@ -252,6 +254,34 @@ public class SaleClueInfoServiceImpl implements ISaleClueInfoService {
 
 
 
 
 
 
+    /**
+     *
+     * @description:销售线索任务-查询用户代办以及本周完成的数量汇总
+     *
+     * @param userId
+     * @return: com.ruixuan.common.core.domain.ResultResponse
+     * @author: zianY
+     */
+    @Override
+    public ResultResponse getTaskNumber(Long userId){
+         Map<String,Integer> resultMap = new HashMap<>();
+         //获取当前周的开始和截至时间
+         Map<String,String> map = DateUtils.getWeekBeginAndEnd();
+
+         //本周有意向合作
+         int complete = saleClueRecordInfoMapper.selectSaleClueIntention(userId,map.get("begin"),map.get("end"));
+         //用户代办-包括未开始与进行中
+         int noStarted = saleClueInfoMapper.selectSaleClueComplete(userId);
+
+         resultMap.put("complete",complete);
+         resultMap.put("noStarted",noStarted);
+
+        return ResultResponse.successMsg("销售汇总查询成功。",resultMap);
+    }
+
+
+
+
 
 
 
 
 
 

+ 0 - 4
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleClueDistributionInfoMapper.xml

@@ -4,10 +4,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruixuan.salesLeads.mapper.SaleClueDistributionInfoMapper">
 <mapper namespace="com.ruixuan.salesLeads.mapper.SaleClueDistributionInfoMapper">
 
 
-
-	
-
-
 <!-- 新增销售线索 分配信息-->
 <!-- 新增销售线索 分配信息-->
 	<insert id="insertSaleClueDistribution">
 	<insert id="insertSaleClueDistribution">
 		insert into sale_clue_distribution_info(
 		insert into sale_clue_distribution_info(

+ 13 - 0
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleClueInfoMapper.xml

@@ -214,5 +214,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
 
 
 
 
+	<!-- 根据销售 查询未完成数量 -->
+	<select id="selectSaleClueComplete" resultType="java.lang.Integer">
+		SELECT
+			COUNT( s.id )
+		FROM
+			sale_clue_info s
+		WHERE
+			s.sale_id = #{saleId}
+		  AND s.state != 3
+	</select>
+
+
+
 
 
 </mapper> 
 </mapper> 

+ 24 - 0
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleClueRecordInfoMapper.xml

@@ -33,6 +33,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
 
 
 
 
+	<!-- 根据销售 查询 本周有意向的数量 -->
+	<select id="selectSaleClueIntention" resultType="java.lang.Integer">
+
+		SELECT
+		COUNT( t.id ) num
+			FROM
+			(
+				SELECT
+					r.id,
+					r.seller_id
+				FROM
+					sale_clue_record_info r
+				WHERE
+				r.create_user_id = #{saleId}
+					AND r.intended_cooperation IN ( 2, 3, 4, 5 )
+					AND r.create_time &gt;= #{startTime}
+					AND r.create_time &lt;= #{endTime}
+					GROUP BY
+			r.seller_id
+		) t
+	</select>
+
+
+
 
 
 
 
 </mapper> 
 </mapper>