提交 c2cb0356 authored 作者: 000516's avatar 000516

回写勤策经销商、终端的部门/负责人字段

package com.sfa.job.domain.feishu.dao;
import com.alibaba.fastjson2.JSONArray;
import com.sfa.job.domain.feishu.entity.QinceMarketEmployee;
import com.sfa.job.pojo.feishu.response.QinceMarketEmployeeDto;
import java.util.List;
import java.util.Set;
/**
* @author : liqiulin
......@@ -11,7 +12,9 @@ import java.util.List;
* @describe :
*/
public interface IQinceMarketEmployeeDao {
void insert(JSONArray jsonArray);
void insert(List<QinceMarketEmployee> dos);
List<QinceMarketEmployeeDto> selectByMd(String dateStr);
List<QinceMarketEmployeeDto> selectByTodayUpdate();
List<QinceMarketEmployeeDto> selectByDealerCodes(Set<String> dealerCodes);
}
package com.sfa.job.domain.feishu.dao;
import com.alibaba.fastjson2.JSONArray;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.sfa.common.core.utils.bean.BeanUtils;
import com.sfa.job.domain.feishu.entity.QinceMarketEmployee;
......@@ -8,11 +7,9 @@ import com.sfa.job.domain.feishu.mapper.QinceMarketEmployeeMapper;
import com.sfa.job.pojo.feishu.response.QinceMarketEmployeeDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Set;
/**
* @author : liqiulin
......@@ -27,41 +24,19 @@ public class QinceMarketEmployeeDaoImpl implements IQinceMarketEmployeeDao{
QinceMarketEmployeeMapper qinceMarketEmployeeMapper;
@Override
public void insert(JSONArray jsonArray) {
// jsonArray = 大区总监工号 大区总监姓名 省区经理工号 省区经理姓名 城市经理工号 城市经理姓名
String dqEmpNo = jsonArray.getString(0);
String dqEmpName = jsonArray.getString(1);
String zqEmpNo = jsonArray.getString(2);
String zqEmpName = jsonArray.getString(3);
String csEmpNo = jsonArray.getString(4);
String csEmpName = jsonArray.getString(5);
List<QinceMarketEmployee> dos = new ArrayList<>();
if (!Objects.isNull(dqEmpNo)) {
QinceMarketEmployee dqDo = new QinceMarketEmployee().setEmpNo(dqEmpNo).setEmpName(dqEmpName)
.setDqEmpNo(dqEmpNo).setDqEmpName(dqEmpName);
dos.add(dqDo);
}
if (!Objects.isNull(zqEmpNo)){
QinceMarketEmployee zqDo = new QinceMarketEmployee().setEmpNo(zqEmpNo).setEmpName(zqEmpName)
.setZqEmpNo(zqEmpNo).setZqEmpName(zqEmpName).setDqEmpNo(dqEmpNo).setDqEmpName(dqEmpName);
dos.add(zqDo);
}
if (!Objects.isNull(csEmpNo)) {
QinceMarketEmployee csDo = new QinceMarketEmployee().setEmpNo(csEmpNo).setEmpName(csEmpName)
.setCsEmpNo(csEmpNo).setCsEmpName(csEmpName).setZqEmpNo(zqEmpNo).setZqEmpName(zqEmpName).setDqEmpNo(dqEmpNo).setDqEmpName(dqEmpName);
dos.add(csDo);
}
if (CollectionUtils.isEmpty(dos)){
return;
}
public void insert(List<QinceMarketEmployee> dos) {
qinceMarketEmployeeMapper.batchInsert(dos);
}
@Override
public List<QinceMarketEmployeeDto> selectByMd(String dateStr) {
List<QinceMarketEmployee> dos = qinceMarketEmployeeMapper.selectByMd(dateStr);
public List<QinceMarketEmployeeDto> selectByTodayUpdate() {
List<QinceMarketEmployee> dos = qinceMarketEmployeeMapper.selectByTodayUpdate();
return BeanUtils.transitionDtos(dos, QinceMarketEmployeeDto.class);
}
@Override
public List<QinceMarketEmployeeDto> selectByDealerCodes(Set<String> dealerCodes) {
List<QinceMarketEmployee> dos = qinceMarketEmployeeMapper.selectByDealerCodes(dealerCodes);
return null;
}
}
......@@ -6,13 +6,18 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* 勤策-区域销售人员架构表,来源:https://wangxiaolu.feishu.cn/sheets/I076slXhlhY2RdtDetEc17ornYd?sheet=49e4ba
* @TableName qince_market_employee
*/
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@TableName(value ="qince_market_employee")
@Data
......@@ -23,51 +28,57 @@ public class QinceMarketEmployee implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 大区总监
*/
private String dqEmpNo;
/**
* 大区总监
* 经销商代码
*/
private String dqEmpName;
private String dealerCode;
private String dealerName;
/**
* 战区负责人
* 大区部门编码
*/
private String zqEmpNo;
private String dqDeptCode;
/**
* 战区负责人
* 战区部门编码
*/
private String zqEmpName;
private String zqDeptCode;
/**
* 城市经理
* 大区总工号
*/
private String csEmpNo;
private String dqEmpNo;
/**
* 城市经理
* 战区经理工号
*/
private String csEmpName;
private String zqEmpNo;
/**
* 员工
* 城市经理工号
*/
private String empNo;
private String csEmpNo;
/**
* 员工
* 创建时间
*/
private String empName;
private Date createTime;
/**
* CP系统修改时间
* 修改时间
*/
private Date modifyTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
public QinceMarketEmployee(String dealerCode, String dealerName, String dqDeptCode, String zqDeptCode, String dqEmpNo, String zqEmpNo, String csEmpNo) {
this.dealerCode = dealerCode;
this.dealerName = dealerName;
this.dqDeptCode = dqDeptCode;
this.zqDeptCode = zqDeptCode;
this.dqEmpNo = dqEmpNo;
this.zqEmpNo = zqEmpNo;
this.csEmpNo = csEmpNo;
}
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
/**
* @author a02200059
......@@ -18,7 +19,9 @@ public interface QinceMarketEmployeeMapper extends BaseMapper<QinceMarketEmploye
void batchInsert(@Param("dos") List<QinceMarketEmployee> dos);
List<QinceMarketEmployee> selectByMd(String dateStr);
List<QinceMarketEmployee> selectByTodayUpdate();
List<QinceMarketEmployee> selectByDealerCodes(@Param("dealerCodes")Set<String> dealerCodes);
}
......
......@@ -11,4 +11,6 @@ import java.util.List;
*/
public interface IQinceClienteleStoreDao {
List<QinceClienteleStoreDto> findListByDealerId(String dealerId);
List<QinceClienteleStoreDto> findListByCreateDate(String yesterday);
}
......@@ -25,4 +25,9 @@ public class QinceClienteleStoreDaoImpl implements IQinceClienteleStoreDao {
List<QinceClienteleStore> storelist = qinceClienteleStoreMapper.findListByDealerId(dealerId);
return BeanUtils.transitionDtos(storelist, QinceClienteleStoreDto.class);
}
@Override
public List<QinceClienteleStoreDto> findListByCreateDate(String yesterday) {
return qinceClienteleStoreMapper.findListByCreateDate(yesterday);
}
}
......@@ -180,14 +180,8 @@ public class QinceClienteleStore implements Serializable {
*/
private String createTime;
/**
*
*/
private String dealersName;
/**
* 经销商编码
*/
private String dealerId;
@TableField(exist = false)
......
......@@ -2,6 +2,7 @@ package com.sfa.job.domain.qince.mapper;
import com.sfa.job.domain.qince.entity.QinceClienteleStore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sfa.job.pojo.qince.response.QinceClienteleStoreDto;
import org.springframework.stereotype.Repository;
import java.util.List;
......@@ -16,6 +17,8 @@ import java.util.List;
public interface QinceClienteleStoreMapper extends BaseMapper<QinceClienteleStore> {
List<QinceClienteleStore> findListByDealerId(String dealerId);
List<QinceClienteleStoreDto> findListByCreateDate(String yesterday);
}
......
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
import com.sfa.job.domain.system.entity.SysDept;
import java.util.List;
import java.util.Map;
/**
* @author : liqiulin
......@@ -18,4 +19,8 @@ public interface ISysDeptDao {
List<SysDept> selectListByStatus();
void deleteDept(String deptCode);
Map<String, String> getDeptCodeAndNameMap();
}
......@@ -2,6 +2,8 @@ package com.sfa.job.domain.system.dao;
import com.alibaba.fastjson2.JSONObject;
import java.util.Map;
/**
* @author : liqiulin
* @date : 2024-12-10 14
......@@ -13,4 +15,6 @@ public interface ISysUserDao {
void updateDeptLeader();
void deleteUser(String employeeNo);
Map<String, String> getUserNoAndNameMap();
}
......@@ -10,8 +10,10 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author : liqiulin
......@@ -106,4 +108,10 @@ public class SysDeptDaoImpl implements ISysDeptDao{
public void deleteDept(String deptCode) {
sysDeptMapper.updateStatus(deptCode);
}
@Override
public Map<String, String> getDeptCodeAndNameMap() {
List<HashMap<String, String>> deptCodeAndNameMap = sysDeptMapper.getDeptCodeAndNameMap();
return deptCodeAndNameMap.stream().collect(Collectors.toMap(m -> m.get("dept_code"), m -> m.get("dept_name")));
}
}
......@@ -7,6 +7,11 @@ import com.sfa.job.domain.system.mapper.SysUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author : liqiulin
* @date : 2024-12-10 14
......@@ -54,4 +59,10 @@ public class SysUserDaoImpl implements ISysUserDao{
public void deleteUser(String employeeNo) {
sysUserMapper.updateStatus(employeeNo);
}
@Override
public Map<String, String> getUserNoAndNameMap() {
List<HashMap<String, String>> userNoAndNameMap = sysUserMapper.getUserNoAndNameMap();
return userNoAndNameMap.stream().collect(Collectors.toMap(m -> m.get("user_name"), m -> m.get("nick_name")));
}
}
......@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sfa.job.domain.system.entity.SysDept;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author a02200059
......@@ -20,6 +22,9 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
List<SysDept> selectListByStatus();
void updateStatus(String deptCode);
List<HashMap<String, String>> getDeptCodeAndNameMap();
}
......
......@@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author a02200059
* @description 针对表【sys_user(用户信息表)】的数据库操作Mapper
......@@ -19,6 +23,8 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
void updateDeptLeader();
void updateStatus(@Param("employeeNo") String employeeNo);
List<HashMap<String, String>> getUserNoAndNameMap();
}
......
......@@ -14,7 +14,7 @@ public enum FSRecordEnum {
*/
AXMR005_1(1),
/**
* 营销中心-区域销售-逻辑组织架构
* 营销中心-经销商名称 大区 战区 战区经理 城市经理 客户经理
*/
XS_USER_RELATION(2),
;
......
......@@ -3,47 +3,55 @@ package com.sfa.job.pojo.feishu.response;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
@Accessors(chain = true)
@Data
public class QinceMarketEmployeeDto{
/**
* 主键id
*/
private Integer id;
/**
* 大区总监
* 经销商代码
*/
private String dqEmpNo;
private String dealerCode;
private String dealerName;
/**
* 大区总监
* 大区部门编码
*/
private String dqEmpName;
private String dqDeptCode;
/**
* 战区负责人
* 战区部门编码
*/
private String zqEmpNo;
private String zqDeptCode;
/**
* 战区负责人
* 大区总工号
*/
private String zqEmpName;
private String dqEmpNo;
/**
* 城市经理
* 战区经理工号
*/
private String csEmpNo;
private String zqEmpNo;
/**
* 城市经理
* 城市经理工号
*/
private String csEmpName;
private String csEmpNo;
/**
* 员工
* 创建时间
*/
private String empNo;
private Date createTime;
/**
* 员工
* 修改时间
*/
private String empName;
private Date modifyTime;
}
\ No newline at end of file
......@@ -48,6 +48,9 @@ public class QinceClienteleStoreDto implements Serializable {
* 大区总监
*/
private String dqManagerName;
private String dealersName;
private String dealerId;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
......
......@@ -4,11 +4,16 @@ import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.sfa.common.core.utils.sdk.FeiShuUtil;
import com.sfa.job.domain.feishu.dao.IQinceMarketEmployeeDao;
import com.sfa.job.domain.feishu.entity.QinceMarketEmployee;
import com.sfa.job.domain.use.dao.IFeishuSheetRecordDao;
import com.sfa.job.enums.FSRecordEnum;
import com.sfa.job.pojo.response.FeishuSheetRecordDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @author : liqiulin
......@@ -34,9 +39,30 @@ public class PullSheetServiceImpl implements IPullSheetService{
JSONObject jsonObject = feiShuUtil.pullSheetOneRange(recordDto.getSheetToken(), feiShuUtil.getBotToken1(), recordDto.getRanges());
JSONArray values = jsonObject.getJSONArray("values");
List<QinceMarketEmployee> dos = new ArrayList<>();
for (int i = 0; i < values.size(); i++) {
JSONArray jsonArray = values.getJSONArray(i);
qinceMarketEmployeeDao.insert(jsonArray);
// 经销商代码0
String dealerCode = jsonArray.getString(0);
// 判断dqEmpNo是否为数字,不是数字不做处理,当是数字时判断是否6位,不足6位用0补齐
if (dealerCode.matches("\\d+") && dealerCode.length() < 6) {
dealerCode = String.format("%06d", Integer.parseInt(dealerCode));
}
String dealerName = jsonArray.getString(1);
// 大区部门编码2
String dqDeptCode = jsonArray.getString(2);
// 大区总工号4
String dqEmpNo = jsonArray.getString(4);
// 战区部门编码6
String zqDeptCode = jsonArray.getString(6);
// 战区经理工号8
String zqEmpNo = jsonArray.getString(8);
// 城市经理工号10
String csEmpNo = jsonArray.getString(10);
QinceMarketEmployee marketDo = new QinceMarketEmployee(dealerCode,dealerName, dqDeptCode, zqDeptCode, dqEmpNo, zqEmpNo, csEmpNo);
dos.add(marketDo);
}
qinceMarketEmployeeDao.insert(dos);
}
}
package com.sfa.job.service.qince.impl;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.sfa.job.domain.feishu.dao.IQinceMarketEmployeeDao;
import com.sfa.job.domain.qince.dao.IQinceClienteleStoreDao;
import com.sfa.job.domain.qince.dao.IQinceDealerDao;
import com.sfa.job.domain.system.dao.ISysDeptDao;
import com.sfa.job.domain.system.dao.ISysUserDao;
import com.sfa.job.pojo.feishu.response.QinceMarketEmployeeDto;
import com.sfa.job.pojo.qince.response.QinceClienteleStoreDto;
import com.sfa.job.pojo.qince.response.QinceDealerDto;
......@@ -16,8 +19,10 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.groovy.util.Maps;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author : liqiulin
......@@ -35,48 +40,66 @@ public class QinceDealerQueryServiceImpl implements IQinceDealerQueryService {
@Autowired
private IQinceMarketEmployeeDao qinceMarketEmployeeDao;
@Autowired
private ISysDeptDao sysDeptDao;
@Autowired
private ISysUserDao sysUserDao;
@Autowired
private QinCeUtils qinCeUtils;
@Override
public void updateQinceDealerInfo() {
/**
* 查询需要更新的经销商
* 1. 查询今日新增/修改的经销商
*/
List<QinceDealerDto> pushQinceDealers = qinceDealerDao.getPushQinceDealers();
List<QinceMarketEmployeeDto> mDtos = qinceMarketEmployeeDao.selectByTodayUpdate();
if (CollectionUtils.isEmpty(mDtos)){
log.info("push qc 经销商(架构): 今日无新增/修改经销商");
return;
}
// 查询部门Map<部门编码,部门名称>,人员Map<工号,姓名>
Map<String,String> deptMap = sysDeptDao.getDeptCodeAndNameMap();
Map<String,String> userMap = sysUserDao.getUserNoAndNameMap();
/**
* 反写勤策中的自定义字段:大区、战区
* 2. 反写勤策中的自定义字段:大区、战区
*/
for (QinceDealerDto dealerDTO : pushQinceDealers) {
for (QinceMarketEmployeeDto mDto : mDtos) {
try {
Map<String, Object> ext1 = new HashMap<>();
ext1.put("dealer_ext_key", "大区");
ext1.put("dealer_ext_value", dealerDTO.getDqOrgName());
ext1.put("dealer_ext_value", deptMap.get(mDto.getDqDeptCode()));
Map<String, Object> ext2 = new HashMap<>();
ext2.put("dealer_ext_key", "战区");
ext2.put("dealer_ext_value", dealerDTO.getZqOrgName());
ext2.put("dealer_ext_value", deptMap.get(mDto.getZqDeptCode()));
Map<String, Object> params = new HashMap<>();
params.put("dealer_id", dealerDTO.getDealerId());
params.put("dealer_id", mDto.getDealerCode());
params.put("exts", Arrays.asList(ext1, ext2));
String url = qinCeUtils.builderUrl(QinCeUtils.MODIFY_DEALER, params);
qinCeUtils.postQC(url, params);
log.info("push qc 经销商(架构)success:{}:{}", mDto.getDealerName(), JSONObject.toJSONString(params));
// 3. 反写当前经销商所负责门店信息:城市经理、战区经理、大区总监
List<QinceClienteleStoreDto> storeDtoList = qinceClienteleStoreDao.findListByDealerId(mDto.getDealerCode());
pushQinceStoreInfo(storeDtoList, deptMap.get(mDto.getDqDeptCode()), deptMap.get(mDto.getZqDeptCode()), mDto, userMap);
log.info("push qc 终端(架构/负责人)success:{}", storeDtoList.size());
log.info("更新经销商成功:{}", JSONObject.toJSONString(dealerDTO));
} catch (RuntimeException e) {
log.error("更新经销商失败:{}", JSONObject.toJSONString(dealerDTO));
log.error("更新经销商失败:{}", JSONObject.toJSONString(mDto));
log.error("失败原因:{}", e.getMessage());
} catch (Exception e) {
log.error("更新经销商失败:{}", e.getMessage());
}
}
log.info("更新勤策经销商战区、大区信息完成,更新量:{}", pushQinceDealers.size());
}
/**
* 暂停开发
*/
@Override
public void queryCusVisitRecord() {
try {
......@@ -93,36 +116,42 @@ public class QinceDealerQueryServiceImpl implements IQinceDealerQueryService {
@Override
public void updateQinceStore() {
// 第一步:查询有变动的人员信息:营销中心-逻辑组织架构表
// 第二步:根据每个人员信息,查询出所负责的经销商
// 第三步:根据每家经销商,查询出归属的有效门店
// 第四步:更新每家门店信息:大区、战区取经销商的;城市经理、战区经理、大区总监取人员架构表的
String dateStr = DateUtil.today();
List<QinceMarketEmployeeDto> empDtos = qinceMarketEmployeeDao.selectByMd(dateStr);
for (QinceMarketEmployeeDto empDto : empDtos) {
List<QinceDealerDto> dealers = qinceDealerDao.findListByManagerCode(empDto.getEmpNo());
for (QinceDealerDto dealer : dealers) {
List<QinceClienteleStoreDto> storeDtoList = qinceClienteleStoreDao.findListByDealerId(dealer.getDealerId());
pushQinceStoreInfo(storeDtoList, dealer,empDto);
}
// 查询昨日新增终端
String yesterday = DatePattern.NORM_DATE_FORMAT.format(DateUtil.yesterday());
List<QinceClienteleStoreDto> storeDtoList = qinceClienteleStoreDao.findListByCreateDate(yesterday);
if (CollectionUtils.isEmpty(storeDtoList)){
log.info("push qc 终端(架构/负责人): 今日无新增终端");
}
Map<String, List<QinceClienteleStoreDto>> groupStores = storeDtoList.stream().collect(Collectors.groupingBy(QinceClienteleStoreDto::getDealerId));
// 查询新增终端涉及所有经销商,查询部门Map<部门编码,部门名称>,人员Map<工号,姓名>
List<QinceMarketEmployeeDto> mDtos = qinceMarketEmployeeDao.selectByDealerCodes(groupStores.keySet());
Map<String, QinceMarketEmployeeDto> dealerMap = mDtos.stream().collect(Collectors.toMap(dto -> dto.getDealerCode(), dto -> dto));
Map<String,String> deptMap = sysDeptDao.getDeptCodeAndNameMap();
Map<String,String> userMap = sysUserDao.getUserNoAndNameMap();
for (Map.Entry<String, List<QinceClienteleStoreDto>> storesEntry : groupStores.entrySet()) {
QinceMarketEmployeeDto mDto = dealerMap.get(storesEntry.getKey());
List<QinceClienteleStoreDto> stores = storesEntry.getValue();
pushQinceStoreInfo(stores, deptMap.get(mDto.getDqDeptCode()), deptMap.get(mDto.getZqDeptCode()), mDto, userMap);
log.info("push qc 终端(架构/负责人)success:{}:{}", mDto.getDealerName(),storeDtoList.size());
}
}
private void pushQinceStoreInfo(List<QinceClienteleStoreDto> storeDtoList,QinceDealerDto dealer,QinceMarketEmployeeDto empDto) {
private void pushQinceStoreInfo(List<QinceClienteleStoreDto> storeDtoList,String dqDeptName,String zqDeptName,QinceMarketEmployeeDto mDto,Map<String,String> userMap) {
Map<String, Object> params = new HashMap<>();
for (QinceClienteleStoreDto storeDto : storeDtoList) {
Map<String, Object> params = new HashMap<>();
try {
List<Map<String, String>> exts = new ArrayList<>();
exts.add(Maps.of("store_ext_key", "城市经理", "store_ext_value", Objects.isNull(mDto.getCsEmpNo()) ? "" : userMap.get(mDto.getCsEmpNo())));
exts.add(Maps.of("store_ext_key", "战区经理", "store_ext_value", Objects.isNull(mDto.getZqEmpNo()) ? "" : userMap.get(mDto.getZqEmpNo())));
exts.add(Maps.of("store_ext_key", "大区总监", "store_ext_value", Objects.isNull(mDto.getDqEmpNo()) ? "" : userMap.get(mDto.getDqEmpNo())));
exts.add(Maps.of("store_ext_key", "大区", "store_ext_value", dqDeptName));
exts.add(Maps.of("store_ext_key", "战区", "store_ext_value", zqDeptName));
params.put("store_waiqin_id", storeDto.getQcId());
params.put("store_name", storeDto.getStoreName());
List<Map<String, String>> exts = new ArrayList<>();
exts.add(Maps.of("store_ext_key", "城市经理", "store_ext_value", empDto.getCsEmpName()));
exts.add(Maps.of("store_ext_key", "战区经理", "store_ext_value", empDto.getZqEmpName()));
exts.add(Maps.of("store_ext_key", "大区总监", "store_ext_value", empDto.getDqEmpName()));
exts.add(Maps.of("store_ext_key", "大区", "store_ext_value", dealer.getDqOrgName()));
exts.add(Maps.of("store_ext_key", "战区", "store_ext_value", dealer.getZqOrgName()));
params.put("exts", exts);
String url = qinCeUtils.builderUrl(QinCeUtils.MODIFY_STORE, params);
......
......@@ -16,8 +16,8 @@ public class PullSheet {
private IPullSheetService pullSheetService;
/**
* 拉取表格 - 勤策门店的城市经理、省区经理、大区总监
* https://wangxiaolu.feishu.cn/sheets/I076slXhlhY2RdtDetEc17ornYd?sheet=49e4ba
* 拉取表格 - 经销商名称 大区 战区 战区经理 城市经理 客户经理
* https://wangxiaolu.feishu.cn/sheets/QIYlsvCL9hwmBJtJ7v5ctYVsnDF?sheet=3eadb4
*/
@XxlJob("pull_sheet_store_manage")
public void qinceSotreManage(){
......
......@@ -17,6 +17,10 @@ public class QinceCoreTask {
@Autowired
private IQinceDealerQueryService qinceCoreService;
/**
* 回写勤策-经销商大区、战区信息
* 每家经销商下所负责终端同时修改
*/
@XxlJob("qince_modify_dealer")
public void qinceCoreTask() {
log.info("回写勤策-经销商大区、战区信息 start");
......@@ -24,12 +28,14 @@ public class QinceCoreTask {
log.info("回写勤策-经销商大区、战区信息 end");
}
/**
* 回写勤策-终端信息(仅回写昨日创建的终端)
*/
@XxlJob("qince_modify_store")
public void qinceCoreStore(){
log.info("回写勤策-门店城市经理、战区经理、大区总监 start");
log.info("回写勤策-终端详情 start");
qinceCoreService.updateQinceStore();
log.info("回写勤策-门店城市经理、战区经理、大区总监 end");
log.info("回写勤策-终端详情 end");
}
/**
......
......@@ -4,42 +4,46 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sfa.job.domain.feishu.mapper.QinceMarketEmployeeMapper">
<resultMap id="BaseResultMap" type="com.sfa.job.domain.feishu.entity.QinceMarketEmployee">
<resultMap id="QinceMarketEmployeeResultMap" type="com.sfa.job.domain.feishu.entity.QinceMarketEmployee">
<id property="id" column="id" jdbcType="INTEGER"/>
<result property="dealerCode" column="dealer_code" jdbcType="VARCHAR"/>
<result property="dealerName" column="dealer_name" jdbcType="VARCHAR"/>
<result property="dqDeptCode" column="dq_dept_code" jdbcType="VARCHAR"/>
<result property="zqDeptCode" column="zq_dept_code" jdbcType="VARCHAR"/>
<result property="dqEmpNo" column="dq_emp_no" jdbcType="VARCHAR"/>
<result property="dqEmpName" column="dq_emp_name" jdbcType="VARCHAR"/>
<result property="zqEmpNo" column="zq_emp_no" jdbcType="VARCHAR"/>
<result property="zqEmpName" column="zq_emp_name" jdbcType="VARCHAR"/>
<result property="csEmpNo" column="cs_emp_no" jdbcType="VARCHAR"/>
<result property="csEmpName" column="cs_emp_name" jdbcType="VARCHAR"/>
<result property="empNo" column="emp_no" jdbcType="VARCHAR"/>
<result property="empName" column="emp_name" jdbcType="VARCHAR"/>
<result property="modifyTime" column="modify_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,dq_emp_no,dq_emp_name,
zq_emp_no,zq_emp_name,cs_emp_no,
cs_emp_name,emp_no,emp_name,
modify_time
</sql>
<insert id="batchInsert" parameterType="java.util.List">
insert into qince_market_employee (emp_no, emp_name, dq_emp_no, dq_emp_name, zq_emp_no, zq_emp_name, cs_emp_no,
cs_emp_name) values
insert into qince_market_employee (dealer_code,dealer_name, dq_dept_code, zq_dept_code, dq_emp_no, zq_emp_no, cs_emp_no)
values
<foreach collection="dos" item="item" separator=",">
(#{item.empNo},#{item.empName},#{item.dqEmpNo},#{item.dqEmpName},#{item.zqEmpNo},#{item.zqEmpName},#{item.csEmpNo},#{item.csEmpName})
(#{item.dealerCode},#{item.dealerName},#{item.dqDeptCode},#{item.zqDeptCode},#{item.dqEmpNo},#{item.zqEmpNo},#{item.csEmpNo})
</foreach>
on duplicate key update emp_name = values(emp_name),dq_emp_no = values(dq_emp_no),dq_emp_name =
values(dq_emp_name),zq_emp_no = values(zq_emp_no),zq_emp_name = values(zq_emp_name),cs_emp_no = values(cs_emp_no),cs_emp_name =
values(cs_emp_name)
on duplicate key
update dq_dept_code = values(dq_dept_code),
zq_dept_code = values(zq_dept_code),
dq_emp_no = values(dq_emp_no),
zq_emp_no = values(zq_emp_no),
cs_emp_no = values(cs_emp_no);
</insert>
<select id="selectByMd" resultMap="BaseResultMap">
select dq_emp_no,dq_emp_name,
zq_emp_no,zq_emp_name,cs_emp_no,
cs_emp_name,emp_no,emp_name
from qince_market_employee where DATE(modify_time) = #{dateStr}
<select id="selectByTodayUpdate" resultMap="QinceMarketEmployeeResultMap">
select dealer_code, dealer_name, dq_dept_code, zq_dept_code, dq_emp_no, zq_emp_no, cs_emp_no
from qince_market_employee
where date (modify_time) = date (current_date);
</select>
<select id="selectByDealerCodes" parameterType="java.util.Set" resultMap="QinceMarketEmployeeResultMap">
select dealer_code, dealer_name, dq_dept_code, zq_dept_code, dq_emp_no, zq_emp_no, cs_emp_no
from qince_market_employee
where dealer_code in
<foreach collection="dealerCodes" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>
</mapper>
......@@ -86,4 +86,8 @@
<update id="updateStatus">
update sys_dept set status = '1', del_flag = '2' where dept_code = #{deptCode};
</update>
<select id="getDeptCodeAndNameMap" resultType="java.util.HashMap">
select dept_code,dept_name from sys_dept where del_flag = '0';
</select>
</mapper>
......@@ -97,4 +97,9 @@
update sys_user set status = 1, del_flag = 3 where user_name = #{employeeNo}
</update>
<select id="getUserNoAndNameMap" resultType="java.util.HashMap">
select user_name ,nick_name
from sys_user where del_flag = 0
</select>
</mapper>
......@@ -4,45 +4,6 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sfa.job.domain.qince.mapper.QinceClienteleStoreMapper">
<!-- <resultMap id="BaseResultMap" type="com.sfa.job.domain.qince.entity.QinceClienteleStore">-->
<!-- <id property="id" column="id" jdbcType="BIGINT"/>-->
<!-- <result property="qcId" column="qc_id" jdbcType="VARCHAR"/>-->
<!-- <result property="creatorWaiqinId" column="creator_waiqin_id" jdbcType="VARCHAR"/>-->
<!-- <result property="creatorName" column="creator_name" jdbcType="VARCHAR"/>-->
<!-- <result property="lineName" column="line_name" jdbcType="VARCHAR"/>-->
<!-- <result property="storeName" column="store_name" jdbcType="VARCHAR"/>-->
<!-- <result property="storeCode" column="store_code" jdbcType="VARCHAR"/>-->
<!-- <result property="storeManager" column="store_manager" jdbcType="VARCHAR"/>-->
<!-- <result property="storeType" column="store_type" jdbcType="VARCHAR"/>-->
<!-- <result property="chain" column="chain" jdbcType="CHAR"/>-->
<!-- <result property="storeDeptWaiqin365Id" column="store_dept_waiqin365_id" jdbcType="VARCHAR"/>-->
<!-- <result property="storeDeptName" column="store_dept_name" jdbcType="VARCHAR"/>-->
<!-- <result property="bothT" column="both_t" jdbcType="VARCHAR"/>-->
<!-- <result property="storeMssProvince" column="store_mss_province" jdbcType="VARCHAR"/>-->
<!-- <result property="storeMssCity" column="store_mss_city" jdbcType="VARCHAR"/>-->
<!-- <result property="storeMssArea" column="store_mss_area" jdbcType="VARCHAR"/>-->
<!-- <result property="storeMssStreet" column="store_mss_street" jdbcType="VARCHAR"/>-->
<!-- <result property="storeAddr" column="store_addr" jdbcType="VARCHAR"/>-->
<!-- <result property="coordinates" column="coordinates" jdbcType="VARCHAR"/>-->
<!-- <result property="storeCooperateStatus" column="store_cooperate_status" jdbcType="CHAR"/>-->
<!-- <result property="storeLabel" column="store_label" jdbcType="VARCHAR"/>-->
<!-- <result property="storeLabelId" column="store_label_id" jdbcType="VARCHAR"/>-->
<!-- <result property="storeSaleDirect" column="store_sale_direct" jdbcType="VARCHAR"/>-->
<!-- <result property="storeModifyTime" column="store_modify_time" jdbcType="VARCHAR"/>-->
<!-- <result property="storeModifyierName" column="store_modifyier_name" jdbcType="VARCHAR"/>-->
<!-- <result property="storeSourceType" column="store_source_type" jdbcType="VARCHAR"/>-->
<!-- <result property="storePictures" column="store_pictures" jdbcType="VARCHAR"/>-->
<!-- <result property="storeManagerCode" column="store_manager_code" jdbcType="VARCHAR"/>-->
<!-- <result property="storeCreatorCode" column="store_creator_code" jdbcType="VARCHAR"/>-->
<!-- <result property="storeModifierCode" column="store_modifier_code" jdbcType="VARCHAR"/>-->
<!-- <result property="storeApprovalStatus" column="store_approval_status" jdbcType="CHAR"/>-->
<!-- <result property="storeStatus" column="store_status" jdbcType="CHAR"/>-->
<!-- <result property="createTime" column="create_time" jdbcType="CHAR"/>-->
<!-- <result property="dealersName" column="dealers_name" jdbcType="VARCHAR"/>-->
<!-- <result property="dealerId" column="dealer_id" jdbcType="VARCHAR"/>-->
<!-- </resultMap>-->
<select id="findListByDealerId" resultType="com.sfa.job.domain.qince.entity.QinceClienteleStore">
select qc_id, store_name, store_code
from qince_clientele_store
......@@ -51,4 +12,13 @@
and store_approval_status = 3
and store_status = '1'
</select>
<select id="findListByCreateDate" resultType="com.sfa.job.domain.qince.entity.QinceClienteleStore">
select qc_id, store_name, store_code,dealer_id,dealers_name,create_time
from qince_clientele_store
where create_time like concat(#{yesterday},'%')
and store_cooperate_status = '1'
and store_approval_status = 3
and store_status = '1';
</select>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论