yangzian 3 vuotta sitten
vanhempi
commit
776e9e38b2

+ 0 - 2
ruixuan-admin/src/main/java/com/ruixuan/web/controller/system/SysUserController.java

@@ -245,9 +245,7 @@ public class SysUserController extends BaseController
     @ApiOperation(value = "根据角色名称code查询用户信息",notes = "根据角色名称code查询用户信息-可以传入多个角色code")
     @GetMapping("/getUserByRoleName")
     public AjaxResult getUserByRoleName( @ApiParam("角色名称的code") @RequestParam(value = "roleName") String roleName) {
-
         List<String> roleCodeList = Arrays.asList(StringUtils.split(roleName,","));
-
         return AjaxResult.success("查询成功",userService.getUserByRoleName(roleCodeList));
     }
 

+ 5 - 3
ruixuan-common/src/main/java/com/ruixuan/common/utils/DateUtils.java

@@ -201,7 +201,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
      */
     public static Long strDateToInt(String date){
 
-        return Long.getLong(date.replaceAll("-",""));
+        return Long.valueOf(date.replaceAll("-",""));
     }
 
 
@@ -265,8 +265,10 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
     }
 
     public static void main(String[] args) {
-        System.out.println(parseDateToStr(YYYY_MM_DD,getBeginDayOfWeek()));
-        System.out.println(parseDateToStr(YYYY_MM_DD,getEendDayOfWeek()));
+        //System.out.println(parseDateToStr(YYYY_MM_DD,getBeginDayOfWeek()));
+       // System.out.println(parseDateToStr(YYYY_MM_DD,getEendDayOfWeek()));
+
+        System.out.println(strDateToInt("2022-05"));
     }
 
     /**

+ 52 - 6
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/controller/SaleClueInfoController.java

@@ -21,8 +21,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -83,11 +82,12 @@ public class SaleClueInfoController extends BaseController {
             @ApiParam("行业id") @RequestParam(value = "industryId",required = false)String industryId,
             @ApiParam("粉丝量级 1:0~50w 2:50W~200W 3:200W~500W 4:500W以上") @RequestParam(value = "fansType",required = false)String fansType,
             @ApiParam("状态 1-未开始 2-进行中 3-已结束") @RequestParam(value = "state",required = false)String state,
+            @ApiParam("状态 1-未开始 2-进行中 3-已结束") @RequestParam(value = "salesLeadsType",required = false)String salesLeadsType,
             @ApiParam("当前用户id") @RequestParam(value = "userId",required = false) Long userId) throws Exception{
 
         return saleClueInfoServiceImpl.selectSaleClueInfoList(sellerName,
                 StringUtils.isEmpty(uploadDate) ? null : DateUtils.strDateToInt(uploadDate),
-                distributionSaleFlag,industryId,fansType,state, userId);
+                distributionSaleFlag,industryId,fansType,state,salesLeadsType, userId);
 
     }
 
@@ -107,11 +107,11 @@ public class SaleClueInfoController extends BaseController {
     @ApiOperation(value = "销售线索-分配",notes = "销售线索-分配-(可以传多个卖家id)")
     @PostMapping(value = "/saleClueDistribution")
     public ResultResponse saleClueDistribution(
-            @ApiParam(value = "卖家ids") @RequestParam(value = "sellerIds") List<String> sellerIds,
+            @ApiParam(value = "卖家ids") @RequestParam(value = "sellerIds") String sellerIds,
             @ApiParam(value = "销售id") @RequestParam(value = "saleId") Long saleId,
             @ApiParam(value = "创建人id") @RequestParam(value = "createUserId") Long createUserId){
-
-        return saleClueInfoServiceImpl.saleClueDistribution(sellerIds,saleId,createUserId);
+        List<String> sellerList = Arrays.asList(StringUtils.split(sellerIds,","));
+        return saleClueInfoServiceImpl.saleClueDistribution(sellerList,saleId,createUserId);
     }
 
 
@@ -173,6 +173,52 @@ public class SaleClueInfoController extends BaseController {
     }
 
 
+    @ApiOperation(value = "销售线索-基础-根据角色显示销售线索分类",notes = "销售线索-基础-根据角色显示销售线索分类(销售线索类型1:50W低潜;2:50W中高潜3:200W高潜4:200W-500w5:500W)")
+    @GetMapping(value = "/getSaleTypeByRoleCode")
+    public ResultResponse getSaleTypeByRoleCode(@ApiParam("角色code") @RequestParam(value = "roleCode") String roleCode){
+
+        List<Map<String,String>> resultList = new ArrayList<>();
+        Map<String,String> map1 = new HashMap<>();
+        map1.put("salesLeadsType","1");
+        map1.put("salesLeadsName","50W低潜");
+
+        Map<String,String> map2 = new HashMap<>();
+        map2.put("salesLeadsType","2");
+        map2.put("salesLeadsName","50W中高潜");
+
+        Map<String,String> map3 = new HashMap<>();
+        map3.put("salesLeadsType","3");
+        map3.put("salesLeadsName","200W高潜");
+
+        Map<String,String> map4 = new HashMap<>();
+        map4.put("salesLeadsType","4");
+        map4.put("salesLeadsName","200W-500w");
+
+        Map<String,String> map5 = new HashMap<>();
+        map5.put("salesLeadsType","5");
+        map5.put("salesLeadsName","500W");
+
+        resultList.add(map1);
+        resultList.add(map2);
+        resultList.add(map3);
+        resultList.add(map4);
+        resultList.add(map5);
+
+        //电销
+        //50w 排第一个
+
+        //面销
+        if (roleCode.contains("facePin")){
+            resultList.remove(map3);
+            //200W 排第一个
+            resultList.add(0,map3);
+        }
+
+        return ResultResponse.successMsg("查询成功",resultList);
+
+    }
+
+
 
 
 

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

@@ -41,6 +41,7 @@ public interface SaleClueInfoMapper {
                                                   @Param(value = "industryId") String industryId,
                                                   @Param(value = "fansType") String fansType,
                                                   @Param(value = "state") String state,
+                                                  @Param(value = "salesLeadsType") String salesLeadsType,
                                                   @Param(value = "userId") Long userId);
 
     /**

+ 5 - 3
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleClueInfoPojo.java

@@ -63,7 +63,7 @@ public class SaleClueInfoPojo {
     private int transitionFlag;
 
     @ApiModelProperty("月份")
-    private int uploadDate;
+    private Long uploadDate;
 
     @ApiModelProperty("是否分配销售 0-否 1-是'")
     private int distributionSaleFlag;
@@ -97,8 +97,10 @@ public class SaleClueInfoPojo {
     @ApiModelProperty("第二次跟进情况")
     private SaleClueRecordInfoPojo secondRecord;
 
-    @ApiModelProperty("任务开始时间")
-    private String taskTime;
+    @ApiModelProperty("任务跟进情况")
+    private SaleClueRecordInfoPojo recordTask;
+
+
 
 
 

+ 3 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleClueRecordInfoPojo.java

@@ -49,6 +49,9 @@ public class SaleClueRecordInfoPojo {
     @ApiModelProperty("创建时间")
     private String createTime;
 
+    @ApiModelProperty("任务开始时间")
+    private String taskTime;
+
 
 
 }

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

@@ -22,7 +22,7 @@ public interface ISaleClueInfoService {
     ResultResponse importSaleExcelOrCsv(MultipartFile file,int salesLeadsType,Long uploadDate,Long createUserId)throws Exception;
 
 
-    ResultResponse selectSaleClueInfoList(String sellerName, Long uploadDate, String distributionSaleFlag, String industryId, String fansType,String state, Long userId)throws Exception;
+    ResultResponse selectSaleClueInfoList(String sellerName, Long uploadDate, String distributionSaleFlag, String industryId, String fansType,String state,String salesLeadsType, Long userId)throws Exception;
 
     ResultResponse selectSaleClueTaskList(String sellerName,Integer state, Long userId);
 

+ 14 - 4
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/SaleClueInfoServiceImpl.java

@@ -108,7 +108,7 @@ public class SaleClueInfoServiceImpl implements ISaleClueInfoService {
             dataList = CsvImportUtil.readCSV(file);
         }
         //处理数据结果
-        resultData(dataList,salesLeadsType,createUserId);
+        resultData(dataList,salesLeadsType,uploadDate,createUserId);
 
         //excel 清除监听数据
         ImportExcelListener.importDataList.clear();
@@ -122,9 +122,10 @@ public class SaleClueInfoServiceImpl implements ISaleClueInfoService {
      * 处理销售线索 数据结果
      * @param dataList
      * @param salesLeadsType
+     * @param uploadDate
      * @param createUserId
      */
-    public void resultData(List<Map<String,String>> dataList,int salesLeadsType,Long createUserId){
+    public void resultData(List<Map<String,String>> dataList,int salesLeadsType,Long uploadDate,Long createUserId){
         List<SaleClueInfoPojo> clueList = new ArrayList<>();
         List<SaleQuotaInfoPojo> quotaList = new ArrayList<>();
         for (Map<String, String> dataMap : dataList) {
@@ -142,6 +143,7 @@ public class SaleClueInfoServiceImpl implements ISaleClueInfoService {
             clue.setProviderFlag(dataMap.get("providerFlag").equals("否") ? 0 : 1);
             clue.setTransitionFlag(dataMap.get("transitionFlag").equals("否") ? 0 : 1 );
             clue.setCreateUserId(createUserId);
+            clue.setUploadDate(uploadDate);
             //查询行业
             SysIndustryInfo industryInfo = sysIndustryInfoMapper.getIndustryInfoByName(dataMap.get("industryId"));
             clue.setIndustryId(StringUtils.isNull(industryInfo) ? 0 : industryInfo.getId());
@@ -218,10 +220,10 @@ public class SaleClueInfoServiceImpl implements ISaleClueInfoService {
      * @author: zianY
      */
     @Override
-    public ResultResponse selectSaleClueInfoList(String sellerName, Long uploadDate, String distributionSaleFlag, String industryId, String fansType, String state,Long userId) throws Exception {
+    public ResultResponse selectSaleClueInfoList(String sellerName, Long uploadDate, String distributionSaleFlag, String industryId, String fansType, String state,String salesLeadsType,Long userId) throws Exception {
 
         PageUtils.startPage();
-        List<SaleClueInfoPojo> saleList =  saleClueInfoMapper.selectSaleClueInfoList(sellerName,uploadDate,distributionSaleFlag,industryId,fansType,state, userId);
+        List<SaleClueInfoPojo> saleList =  saleClueInfoMapper.selectSaleClueInfoList(sellerName,uploadDate,distributionSaleFlag,industryId,fansType,state,salesLeadsType, userId);
         saleList.forEach(clue ->{
             clue.setFirstRecord(saleClueRecordInfoMapper.getSaleClueRecordNumber(clue.getSellerId(),1));
             clue.setSecondRecord(saleClueRecordInfoMapper.getSaleClueRecordNumber(clue.getSellerId(),2));
@@ -244,6 +246,14 @@ public class SaleClueInfoServiceImpl implements ISaleClueInfoService {
     public ResultResponse selectSaleClueTaskList(String sellerName,Integer state, Long userId) {
         PageUtils.startPage();
         List<SaleClueInfoPojo> saleList =  saleClueInfoMapper.selectSaleClueTaskList(sellerName,state, userId);
+
+        saleList.forEach(cluePojo -> {
+            //获取最新一条记录信息
+            List<SaleClueRecordInfoPojo> list = saleClueRecordInfoMapper.selectDistributionList(cluePojo.getSellerId());
+            cluePojo.setRecordTask(list.get(list.size()-1));
+        });
+
+
         return ResultResponse.successMsg("查询成功。",new TableDataInfo(saleList,new Long(new PageInfo(saleList).getTotal()).intValue()));
     }
 

+ 9 - 4
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/utils/CsvImportUtil.java

@@ -8,8 +8,11 @@ import de.siegmar.fastcsv.reader.CsvRow;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.BufferedReader;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.InputStreamReader;
+import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -41,11 +44,13 @@ public class CsvImportUtil {
 
         CsvReader csvReader = new CsvReader();
         csvReader.setContainsHeader(true);
+/*
 
-        CsvContainer csv = csvReader.read(file, StandardCharsets.UTF_8);
-
-
-        log.info("csv====>>>{}",csv.getRows());
+//        CsvContainer csv = csvReader.read(file, StandardCharsets.UTF_8);
+        CsvContainer csv = csvReader.read(file, Charset.forName("gbk"));
+*/
+        InputStreamReader isr = new InputStreamReader(new FileInputStream(file),"GBK");
+        CsvContainer csv = csvReader.read(isr);
 
         //行数据
         List<CsvRow> rows = csv.getRows();

+ 4 - 3
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleClueInfoMapper.xml

@@ -92,6 +92,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="state !=null and state != ''">
 				and s.state = #{state}
 			</if>
+			<if test="salesLeadsType !=null and salesLeadsType != ''">
+				and s.sales_leads_type = #{salesLeadsType}
+			</if>
 			<if test="userId !=null and userId != ''">
 				and s.update_user_id = #{userId}
 			</if>
@@ -136,11 +139,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			s.state,
 			s.offline_sale_flag,
 			s.create_user_id,
-			s.create_time,
-			MIN(d.create_time) taskTime
+			s.create_time
 		FROM
 			sale_clue_info s
-		LEFT JOIN sale_clue_distribution_info d on s.seller_id = d.seller_id
 		<where>
 			<if test="sellerName !=null and sellerName != ''">
 				and (s.seller_name like CONCAT('%', CONCAT(#{sellerName}, '%')) or s.seller_id like CONCAT('%', CONCAT(#{sellerName}, '%')))

+ 2 - 1
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleClueRecordInfoMapper.xml

@@ -70,7 +70,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		r.record_info,
 		r.remarks,
 		r.create_user_id,
-		r.create_time
+		r.create_time,
+		(SELECT MIN(create_time) FROM sale_clue_record_info WHERE seller_id = #{sellerId}) as taskTime
 		FROM
 		sale_clue_record_info r
 		<where>