提交 0c1b6696 authored 作者: 吕本才's avatar 吕本才

Merge remote-tracking branch 'origin-gitlab/qa' into qa-gitlab

...@@ -39,26 +39,37 @@ public class QinceMarketEmployee implements Serializable { ...@@ -39,26 +39,37 @@ public class QinceMarketEmployee implements Serializable {
* 大区部门编码 * 大区部门编码
*/ */
private String dqDeptCode; private String dqDeptCode;
private String dqDeptName;
/** /**
* 战区部门编码 * 战区部门编码
*/ */
private String zqDeptCode; private String zqDeptCode;
private String zqDeptName;
/** /**
* 大区总工号 * 大区总工号
*/ */
private String dqEmpNo; private String dqEmpNo;
private String dqEmpName;
/** /**
* 战区经理工号 * 战区经理工号
*/ */
private String zqEmpNo; private String zqEmpNo;
private String zqEmpName;
/** /**
* 城市经理工号 * 城市经理工号
*/ */
private String csEmpNo; private String csEmpNo;
private String csEmpName;
/**
* 客户经理工号
*/
private String fEmpNo;
private String fEmpName;
/** /**
* 创建时间 * 创建时间
...@@ -72,13 +83,20 @@ public class QinceMarketEmployee implements Serializable { ...@@ -72,13 +83,20 @@ public class QinceMarketEmployee implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public QinceMarketEmployee(String dealerCode, String dealerName, String dqDeptCode, String zqDeptCode, String dqEmpNo, String zqEmpNo, String csEmpNo) { public QinceMarketEmployee(String dealerCode, String dealerName, String dqDeptCode, String dqDeptName, String zqDeptCode, String zqDeptName, String dqEmpNo, String dqEmpName, String zqEmpNo, String zqEmpName, String csEmpNo, String csEmpName, String fEmpNo, String fEmpName) {
this.dealerCode = dealerCode; this.dealerCode = dealerCode;
this.dealerName = dealerName; this.dealerName = dealerName;
this.dqDeptCode = dqDeptCode; this.dqDeptCode = dqDeptCode;
this.dqDeptName = dqDeptName;
this.zqDeptCode = zqDeptCode; this.zqDeptCode = zqDeptCode;
this.zqDeptName = zqDeptName;
this.dqEmpNo = dqEmpNo; this.dqEmpNo = dqEmpNo;
this.dqEmpName = dqEmpName;
this.zqEmpNo = zqEmpNo; this.zqEmpNo = zqEmpNo;
this.zqEmpName = zqEmpName;
this.csEmpNo = csEmpNo; this.csEmpNo = csEmpNo;
this.csEmpName = csEmpName;
this.fEmpNo = fEmpNo;
this.fEmpName = fEmpName;
} }
} }
\ No newline at end of file
package com.sfa.job.domain.ls;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
/**
* ls_门店表
* @TableName ls_dis_store
*/
@TableName(value ="ls_dis_store")
@Data
public class LsDisStore implements Serializable {
/**
* 自增主键
*/
@TableId(type = IdType.AUTO)
private Long ldsIf;
//
// /**
// * DISTRIBUTOR[Division]
// */
// private String disDivision;
//
// /**
// * DISTRIBUTOR[经销商名称 - Distributor Name]
// */
// private String disName;
//
// /**
// * PRODUCT[DISBrand]
// */
// private String disBrand;
//
// /**
// * DISTRIBUTOR[经销商省份 - Distributor Province]
// */
// private String disProvince;
//
// /**
// * DISTRIBUTOR[City]
// */
// private String disCity;
//
// /**
// * DATE[YearMonth]
// */
// private String dateYm;
//
// /**
// * OUTLET[百事门店编码 – PepsiCo Store Code]
// */
// private String outletCode;
/**
* OUTLET[全量门店名称 - Outlet Name]
*/
private String outletName;
// /**
// * OUTLET[门店类型 - Outlet Type]
// */
// private String outletType;
//
// /**
// * 王小卤门店类型-大类
// */
// private String outletTypeWd;
//
// /**
// * 王小卤门店类型-小类
// */
// private String outletTypeWx;
//
// /**
// * OUTLET[门店省份 - Outlet Province]
// */
// private String outletProvince;
//
// /**
// * OUTLET[门店尼尔森城市 - Outlet Nielsen City]
// */
// private String outletNesCity;
/**
* OUTLET[门店地址 - Outlet Address]
*/
private String outletAddress;
/**
* 径度
*/
private String lng;
/**
* 纬度
*/
private String lat;
/**
* 省
*/
private String reProvince;
/**
* 市
*/
private String reCity;
/**
* 区
*/
private String reArea;
/**
* 百度地址
*/
private String reAddress;
//
// /**
// * [销售金额_元___Sell_Out_Value__Yuan_]
// */
// private BigDecimal saleValue;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.sfa.job.domain.ls;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.sfa.job.domain.ls.mapper.LsDisStoreMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author : liqiulin
* @date : 2025-11-27 17
* @describe :
*/
@Slf4j
@DS("bi")
@Service
public class LsDisStoreDaoImpl {
@Autowired
private LsDisStoreMapper lsDisStoreMapper;
// 安徽王小卤主体
public void baiduAddressAnHui(Long ldsId){
List<LsDisStore> lsDisStores = lsDisStoreMapper.selectBaseO(ldsId);
if (lsDisStores.isEmpty()){
return;
}
ldsId = lsDisStores.get(lsDisStores.size() - 1).getLdsIf();
updateanhui(lsDisStores,ldsId);
}
// 东旭:OI4hMr7tEUoDBhSYxcrOGslnnBfZmD2b
// 秋林:1ZKO0CGs6nm9HuZWR6ucRiu4p9kM8f3i
private void updateanhui(List<LsDisStore> lsDisStores,Long ldsId){
for (LsDisStore lsDisStore : lsDisStores) {
String outlet = lsDisStore.getOutletName()+lsDisStore.getOutletAddress();
String s = HttpUtil.get("https://api.map.baidu.com/geocoding/v3/?address="+outlet+"&output=json&ak=OI4hMr7tEUoDBhSYxcrOGslnnBfZmD2b&city="+lsDisStore.getReCity());
JSONObject bd = JSONObject.parseObject(s);
Integer status = bd.getInteger("status");
if (status.intValue() >= 300 && status.intValue() <= 399){
log.info(s);
return;
}
if (status.intValue() != 0){
continue;
}
JSONObject jo = bd.getJSONObject("result");
String analysLevel = jo.getString("level");
lsDisStore.setLat(analysLevel);
if (!analysLevel.equals("省") && !analysLevel.equals("城市")){
JSONObject location = jo.getJSONObject("location");
Float lng = location.getFloat("lng");
Float lat = location.getFloat("lat");
lsDisStore.setLng(lat+","+lng);
}
}
lsDisStoreMapper.updateListO(lsDisStores);
baiduAddressAnHui(ldsId);
}
// 广州王小卤主体
public void baiduAddressGuangzhou(long ldsId) {
List<LsDisStore> lsDisStores = lsDisStoreMapper.selectBaseT(ldsId);
if (lsDisStores.isEmpty()){
return;
}
ldsId = lsDisStores.get(lsDisStores.size() - 1).getLdsIf();
updateGuangzhou(lsDisStores,ldsId);
}
// 光浩:sJFYkogPGt8kI3xkkSPwQQ9T61b4GVQV
// 黄总:8ptRbXOnQNX2TTqGVVYv5AUw3vJZ77gZ
private void updateGuangzhou(List<LsDisStore> lsDisStores,Long ldsId){
for (LsDisStore lsDisStore : lsDisStores) {
String outlet = lsDisStore.getOutletName()+lsDisStore.getOutletAddress();
String s = HttpUtil.get("https://api.map.baidu.com/geocoding/v3/?address="+outlet+"&output=json&ak=sJFYkogPGt8kI3xkkSPwQQ9T61b4GVQV&city="+lsDisStore.getReCity());
JSONObject bd = JSONObject.parseObject(s);
Integer status = bd.getInteger("status");
if (status.intValue() >= 300 && status.intValue() <= 399){
log.info(s);
return;
}
if (status.intValue() != 0){
continue;
}
JSONObject jo = bd.getJSONObject("result");
String analysLevel = jo.getString("level");
lsDisStore.setLat(analysLevel);
if (!analysLevel.equals("省") && !analysLevel.equals("城市")){
JSONObject location = jo.getJSONObject("location");
Float lng = location.getFloat("lng");
Float lat = location.getFloat("lat");
lsDisStore.setLng(lat+","+lng);
}
}
lsDisStoreMapper.updateListT(lsDisStores);
baiduAddressGuangzhou(ldsId);
}
public void baiduAddressAnHuisp(Long ldsId){
List<LsDisStore> lsDisStores = lsDisStoreMapper.selectBaseS(ldsId);
if (lsDisStores.isEmpty()){
return;
}
ldsId = lsDisStores.get(lsDisStores.size() - 1).getLdsIf();
updateanhuisp(lsDisStores,ldsId);
}
// 欣雨:StY6BS8Bw50TrclA4Zd52MfEjsL1zUXI
// 本才:anjhOkUMuRyTb3DZO6dMGRUCY2l0vAql
private void updateanhuisp(List<LsDisStore> lsDisStores,Long ldsId){
for (LsDisStore lsDisStore : lsDisStores) {
String outlet = lsDisStore.getOutletName()+lsDisStore.getOutletAddress();
String s = HttpUtil.get("https://api.map.baidu.com/geocoding/v3/?address="+outlet+"&output=json&ak=anjhOkUMuRyTb3DZO6dMGRUCY2l0vAql&city="+lsDisStore.getReCity());
JSONObject bd = JSONObject.parseObject(s);
Integer status = bd.getInteger("status");
if (status.intValue() >= 300 && status.intValue() <= 399){
log.info(s);
return;
}
if (status.intValue() != 0){
continue;
}
JSONObject jo = bd.getJSONObject("result");
String analysLevel = jo.getString("level");
lsDisStore.setLat(analysLevel);
if (!analysLevel.equals("省") && !analysLevel.equals("城市")){
JSONObject location = jo.getJSONObject("location");
Float lng = location.getFloat("lng");
Float lat = location.getFloat("lat");
lsDisStore.setLng(lat+","+lng);
}
}
lsDisStoreMapper.updateListS(lsDisStores);
baiduAddressAnHuisp(ldsId);
}
public void nAddreasAnHui(long ldsId) {
List<LsDisStore> lsDisStores = lsDisStoreMapper.selectBaseLO(ldsId);
if (lsDisStores.isEmpty()){
return;
}
ldsId = lsDisStores.get(lsDisStores.size() - 1).getLdsIf();
nUanhuisp(lsDisStores,ldsId);
}
// 洪虎:Ltqlx9VbzkCs1BiVvErlzkjDBc1htKUb
private void nUanhuisp(List<LsDisStore> lsDisStores,Long ldsId){
for (LsDisStore lsDisStore : lsDisStores) {
String lng = lsDisStore.getLng();
String s = HttpUtil.get("https://api.map.baidu.com/reverse_geocoding/v3/?location="+lng+"&output=json&ak=Ltqlx9VbzkCs1BiVvErlzkjDBc1htKUb");
JSONObject bd = JSONObject.parseObject(s);
Integer status = bd.getInteger("status");
if (status.intValue() >= 300 && status.intValue() <= 399){
log.info(s);
return;
}
if (status.intValue() != 0){
continue;
}
JSONObject jo = bd.getJSONObject("result");
String formattedAddress = jo.getString("formatted_address");
JSONObject ac = jo.getJSONObject("addressComponent");
String district = ac.getString("district");
lsDisStore.setReAddress(formattedAddress);
lsDisStore.setReArea(district);
}
lsDisStoreMapper.updateListNO(lsDisStores);
nAddreasAnHui(ldsId);
}
public void lsStoreNXY(long ldsId) {
List<LsDisStore> lsDisStores = lsDisStoreMapper.selectBaseLT(ldsId);
if (lsDisStores.isEmpty()){
return;
}
ldsId = lsDisStores.get(lsDisStores.size() - 1).getLdsIf();
nUXY(lsDisStores,ldsId);
}
private void nUXY(List<LsDisStore> lsDisStores,Long ldsId){
for (LsDisStore lsDisStore : lsDisStores) {
String lng = lsDisStore.getLng();
String s = HttpUtil.get("https://api.map.baidu.com/reverse_geocoding/v3/?location="+lng+"&output=json&ak=StY6BS8Bw50TrclA4Zd52MfEjsL1zUXI");
JSONObject bd = JSONObject.parseObject(s);
Integer status = bd.getInteger("status");
if (status.intValue() >= 300 && status.intValue() <= 399){
log.info(s);
return;
}
if (status.intValue() != 0){
continue;
}
JSONObject jo = bd.getJSONObject("result");
String formattedAddress = jo.getString("formatted_address");
JSONObject ac = jo.getJSONObject("addressComponent");
String district = ac.getString("district");
lsDisStore.setReAddress(formattedAddress);
lsDisStore.setReArea(district);
}
lsDisStoreMapper.updateListNO(lsDisStores);
lsStoreNXY(ldsId);
}
public void lsStoreNGH(long ldsId) {
List<LsDisStore> lsDisStores = lsDisStoreMapper.selectBaseLS(ldsId);
if (lsDisStores.isEmpty()){
return;
}
ldsId = lsDisStores.get(lsDisStores.size() - 1).getLdsIf();
nUGH(lsDisStores,ldsId);
}
private void nUGH(List<LsDisStore> lsDisStores, long ldsId) {
for (LsDisStore lsDisStore : lsDisStores) {
String lng = lsDisStore.getLng();
String s = HttpUtil.get("https://api.map.baidu.com/reverse_geocoding/v3/?location="+lng+"&output=json&ak=sJFYkogPGt8kI3xkkSPwQQ9T61b4GVQV");
JSONObject bd = JSONObject.parseObject(s);
Integer status = bd.getInteger("status");
if (status.intValue() >= 300 && status.intValue() <= 399){
log.info(s);
return;
}
if (status.intValue() != 0){
continue;
}
JSONObject jo = bd.getJSONObject("result");
String formattedAddress = jo.getString("formatted_address");
JSONObject ac = jo.getJSONObject("addressComponent");
String district = ac.getString("district");
lsDisStore.setReAddress(formattedAddress);
lsDisStore.setReArea(district);
}
lsDisStoreMapper.updateListNO(lsDisStores);
lsStoreNGH(ldsId);
}
public void lsStoreNHS(long ldsId) {
List<LsDisStore> lsDisStores = lsDisStoreMapper.selectBaseLF(ldsId);
if (lsDisStores.isEmpty()){
return;
}
ldsId = lsDisStores.get(lsDisStores.size() - 1).getLdsIf();
nUHS(lsDisStores,ldsId);
}
private void nUHS(List<LsDisStore> lsDisStores, long ldsId) {
for (LsDisStore lsDisStore : lsDisStores) {
String lng = lsDisStore.getLng();
String s = HttpUtil.get("https://api.map.baidu.com/reverse_geocoding/v3/?location="+lng+"&output=json&ak=8ptRbXOnQNX2TTqGVVYv5AUw3vJZ77gZ");
JSONObject bd = JSONObject.parseObject(s);
Integer status = bd.getInteger("status");
if (status.intValue() >= 300 && status.intValue() <= 399){
log.info(s);
return;
}
if (status.intValue() != 0){
continue;
}
JSONObject jo = bd.getJSONObject("result");
String formattedAddress = jo.getString("formatted_address");
JSONObject ac = jo.getJSONObject("addressComponent");
String district = ac.getString("district");
lsDisStore.setReAddress(formattedAddress);
lsDisStore.setReArea(district);
}
lsDisStoreMapper.updateListNO(lsDisStores);
lsStoreNHS(ldsId);
}
public void lsStoreNDX(long ldsId) {
List<LsDisStore> lsDisStores = lsDisStoreMapper.selectBaseLV(ldsId);
if (lsDisStores.isEmpty()){
return;
}
ldsId = lsDisStores.get(lsDisStores.size() - 1).getLdsIf();
nUDX(lsDisStores,ldsId);
}
private void nUDX(List<LsDisStore> lsDisStores, long ldsId) {
for (LsDisStore lsDisStore : lsDisStores) {
String lng = lsDisStore.getLng();
String s = HttpUtil.get("https://api.map.baidu.com/reverse_geocoding/v3/?location="+lng+"&output=json&ak=OI4hMr7tEUoDBhSYxcrOGslnnBfZmD2b");
JSONObject bd = JSONObject.parseObject(s);
Integer status = bd.getInteger("status");
if (status.intValue() >= 300 && status.intValue() <= 399){
log.info(s);
return;
}
if (status.intValue() != 0){
continue;
}
JSONObject jo = bd.getJSONObject("result");
String formattedAddress = jo.getString("formatted_address");
JSONObject ac = jo.getJSONObject("addressComponent");
String district = ac.getString("district");
lsDisStore.setReAddress(formattedAddress);
lsDisStore.setReArea(district);
}
lsDisStoreMapper.updateListNO(lsDisStores);
lsStoreNDX(ldsId);
}
public void lsStoreNQL(long ldsId) {
List<LsDisStore> lsDisStores = lsDisStoreMapper.selectBaseLX(ldsId);
if (lsDisStores.isEmpty()){
return;
}
ldsId = lsDisStores.get(lsDisStores.size() - 1).getLdsIf();
nUQL(lsDisStores,ldsId);
}
private void nUQL(List<LsDisStore> lsDisStores, long ldsId) {
for (LsDisStore lsDisStore : lsDisStores) {
String lng = lsDisStore.getLng();
String s = HttpUtil.get("https://api.map.baidu.com/reverse_geocoding/v3/?location="+lng+"&output=json&ak=1ZKO0CGs6nm9HuZWR6ucRiu4p9kM8f3i");
JSONObject bd = JSONObject.parseObject(s);
Integer status = bd.getInteger("status");
if (status.intValue() >= 300 && status.intValue() <= 399){
log.info(s);
return;
}
if (status.intValue() != 0){
continue;
}
JSONObject jo = bd.getJSONObject("result");
String formattedAddress = jo.getString("formatted_address");
JSONObject ac = jo.getJSONObject("addressComponent");
String district = ac.getString("district");
lsDisStore.setReAddress(formattedAddress);
lsDisStore.setReArea(district);
}
lsDisStoreMapper.updateListNO(lsDisStores);
lsStoreNQL(ldsId);
}
}
package com.sfa.job.domain.ls.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sfa.job.domain.ls.LsDisStore;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author a02200059
* @description 针对表【ls_dis_store(ls_门店表)】的数据库操作Mapper
* @createDate 2025-11-27 17:04:20
* @Entity com.sfa.job.domain.ls.LsDisStore
*/
@Repository
public interface LsDisStoreMapper extends BaseMapper<LsDisStore> {
List<LsDisStore> selectBaseO(Long lastId);
void updateListO(@Param("lsDisStores") List<LsDisStore> lsDisStores);
List<LsDisStore> selectBaseT(Long lastId);
void updateListT(@Param("lsDisStores") List<LsDisStore> lsDisStores);
List<LsDisStore> selectBaseS(Long lastId);
void updateListS(@Param("lsDisStores") List<LsDisStore> lsDisStores);
/**
* 逆地理编码
*/
List<LsDisStore> selectBaseLO(long ldsId);
List<LsDisStore> selectBaseLT(long ldsId);
List<LsDisStore> selectBaseLS(long ldsId);
List<LsDisStore> selectBaseLF(long ldsId);
List<LsDisStore> selectBaseLV(long ldsId);
List<LsDisStore> selectBaseLX(long ldsId);
void updateListNO(@Param("lsDisStores") List<LsDisStore> lsDisStores);
}
...@@ -13,7 +13,6 @@ public class QinceMarketEmployeeDto{ ...@@ -13,7 +13,6 @@ public class QinceMarketEmployeeDto{
*/ */
private Integer id; private Integer id;
/** /**
* 经销商代码 * 经销商代码
*/ */
...@@ -24,26 +23,37 @@ public class QinceMarketEmployeeDto{ ...@@ -24,26 +23,37 @@ public class QinceMarketEmployeeDto{
* 大区部门编码 * 大区部门编码
*/ */
private String dqDeptCode; private String dqDeptCode;
private String dqDeptName;
/** /**
* 战区部门编码 * 战区部门编码
*/ */
private String zqDeptCode; private String zqDeptCode;
private String zqDeptName;
/** /**
* 大区总工号 * 大区总工号
*/ */
private String dqEmpNo; private String dqEmpNo;
private String dqEmpName;
/** /**
* 战区经理工号 * 战区经理工号
*/ */
private String zqEmpNo; private String zqEmpNo;
private String zqEmpName;
/** /**
* 城市经理工号 * 城市经理工号
*/ */
private String csEmpNo; private String csEmpNo;
private String csEmpName;
/**
* 客户经理工号
*/
private String fEmpNo;
private String fEmpName;
/** /**
* 创建时间 * 创建时间
......
...@@ -44,6 +44,7 @@ public class PullSheetServiceImpl implements IPullSheetService{ ...@@ -44,6 +44,7 @@ public class PullSheetServiceImpl implements IPullSheetService{
JSONArray jsonArray = values.getJSONArray(i); JSONArray jsonArray = values.getJSONArray(i);
// 经销商代码0 // 经销商代码0
String dealerCode = jsonArray.getString(0); String dealerCode = jsonArray.getString(0);
// 经销商名称1
// 判断dqEmpNo是否为数字,不是数字不做处理,当是数字时判断是否6位,不足6位用0补齐 // 判断dqEmpNo是否为数字,不是数字不做处理,当是数字时判断是否6位,不足6位用0补齐
if (dealerCode.matches("\\d+") && dealerCode.length() < 6) { if (dealerCode.matches("\\d+") && dealerCode.length() < 6) {
dealerCode = String.format("%06d", Integer.parseInt(dealerCode)); dealerCode = String.format("%06d", Integer.parseInt(dealerCode));
...@@ -51,16 +52,30 @@ public class PullSheetServiceImpl implements IPullSheetService{ ...@@ -51,16 +52,30 @@ public class PullSheetServiceImpl implements IPullSheetService{
String dealerName = jsonArray.getString(1); String dealerName = jsonArray.getString(1);
// 大区部门编码2 // 大区部门编码2
String dqDeptCode = jsonArray.getString(2); String dqDeptCode = jsonArray.getString(2);
// 大区部门名称3
String dqDeptName = jsonArray.getString(3);
// 大区总工号4 // 大区总工号4
String dqEmpNo = jsonArray.getString(4); String dqEmpNo = jsonArray.getString(4);
// 大区总工姓名5
String dqEmpName = jsonArray.getString(5);
// 战区部门编码6 // 战区部门编码6
String zqDeptCode = jsonArray.getString(6); String zqDeptCode = jsonArray.getString(6);
// 战区部门名称7
String zqDeptName = jsonArray.getString(7);
// 战区经理工号8 // 战区经理工号8
String zqEmpNo = jsonArray.getString(8); String zqEmpNo = jsonArray.getString(8);
// 战区经理姓名9
String zqEmpName = jsonArray.getString(9);
// 城市经理工号10 // 城市经理工号10
String csEmpNo = jsonArray.getString(10); String csEmpNo = jsonArray.getString(10);
// 城市经理姓名11
String csEmpName = jsonArray.getString(11);
// 客户经理工号12
String fEmpNo = jsonArray.getString(12);
// 客户经理姓名13
String fEmpName = jsonArray.getString(13);
QinceMarketEmployee marketDo = new QinceMarketEmployee(dealerCode,dealerName, dqDeptCode, zqDeptCode, dqEmpNo, zqEmpNo, csEmpNo); QinceMarketEmployee marketDo = new QinceMarketEmployee(dealerCode, dealerName, dqDeptCode, dqDeptName, zqDeptCode, zqDeptName, dqEmpNo, dqEmpName, zqEmpNo, zqEmpName, csEmpNo, csEmpName, fEmpNo, fEmpName);
dos.add(marketDo); dos.add(marketDo);
} }
qinceMarketEmployeeDao.insert(dos); qinceMarketEmployeeDao.insert(dos);
......
...@@ -52,27 +52,28 @@ public class QinceDealerQueryServiceImpl implements IQinceDealerQueryService { ...@@ -52,27 +52,28 @@ public class QinceDealerQueryServiceImpl implements IQinceDealerQueryService {
} }
// 查询部门Map<部门编码,部门名称>,人员Map<工号,姓名> // 查询部门Map<部门编码,部门名称>,人员Map<工号,姓名>
Map<String,String> deptMap = sysDeptDao.getDeptCodeAndNameMap(); // Map<String,String> deptMap = sysDeptDao.getDeptCodeAndNameMap();
Map<String,String> userMap = sysUserDao.getUserNoAndNameMap(); // Map<String,String> userMap = sysUserDao.getUserNoAndNameMap();
/** /**
* 2. 反写勤策中的自定义字段:大区、战区 * 2. 反写勤策中的自定义字段:大区、战区
* BM0020 北京战区改为北京特区
*/ */
for (QinceMarketEmployeeDto mDto : mDtos) { for (QinceMarketEmployeeDto mDto : mDtos) {
try { try {
Map<String, Object> ext1 = new HashMap<>(); Map<String, Object> ext1 = new HashMap<>();
String dqtq = "BM0020".equals(mDto.getDqDeptCode()) ? "北京特区" : deptMap.get(mDto.getDqDeptCode()); // String dqtq = "BM0020".equals(mDto.getDqDeptCode()) ? "北京特区" : deptMap.get(mDto.getDqDeptCode());
ext1.put("dealer_ext_key", "大区"); ext1.put("dealer_ext_key", "大区");
ext1.put("dealer_ext_value",dqtq); ext1.put("dealer_ext_value",mDto.getDqDeptName());
Map<String, Object> ext2 = new HashMap<>(); Map<String, Object> ext2 = new HashMap<>();
ext2.put("dealer_ext_key", "战区"); ext2.put("dealer_ext_key", "战区");
ext2.put("dealer_ext_value", deptMap.get(mDto.getZqDeptCode())); ext2.put("dealer_ext_value",mDto.getZqDeptName());
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("dealer_id", mDto.getDealerCode()); params.put("dealer_id", mDto.getDealerCode());
params.put("exts", Arrays.asList(ext1, ext2)); params.put("exts", Arrays.asList(ext1, ext2));
params.put("dealer_emp_code", mDto.getFEmpNo());
// params.put("dealer_manager", mDto.getFEmpName());
String url = qinCeUtils.builderUrl(QinCeUtils.MODIFY_DEALER, params); String url = qinCeUtils.builderUrl(QinCeUtils.MODIFY_DEALER, params);
...@@ -81,7 +82,7 @@ public class QinceDealerQueryServiceImpl implements IQinceDealerQueryService { ...@@ -81,7 +82,7 @@ public class QinceDealerQueryServiceImpl implements IQinceDealerQueryService {
// 3. 反写当前经销商所负责门店信息:城市经理、战区经理、大区总监 // 3. 反写当前经销商所负责门店信息:城市经理、战区经理、大区总监
List<QinceClienteleStoreDto> storeDtoList = qinceClienteleStoreDao.findListByDealerId(mDto.getDealerCode()); List<QinceClienteleStoreDto> storeDtoList = qinceClienteleStoreDao.findListByDealerId(mDto.getDealerCode());
pushQinceStoreInfo(storeDtoList, dqtq, deptMap.get(mDto.getZqDeptCode()), mDto, userMap); pushQinceStoreInfo(storeDtoList, mDto);
log.info("push qc 终端(架构/负责人)success:{}", storeDtoList.size()); log.info("push qc 终端(架构/负责人)success:{}", storeDtoList.size());
} catch (RuntimeException e) { } catch (RuntimeException e) {
...@@ -125,8 +126,8 @@ public class QinceDealerQueryServiceImpl implements IQinceDealerQueryService { ...@@ -125,8 +126,8 @@ public class QinceDealerQueryServiceImpl implements IQinceDealerQueryService {
List<QinceMarketEmployeeDto> mDtos = qinceMarketEmployeeDao.selectByDealerCodes(groupStores.keySet()); List<QinceMarketEmployeeDto> mDtos = qinceMarketEmployeeDao.selectByDealerCodes(groupStores.keySet());
Map<String, QinceMarketEmployeeDto> dealerMap = mDtos.stream().collect(Collectors.toMap(dto -> dto.getDealerCode(), dto -> dto)); Map<String, QinceMarketEmployeeDto> dealerMap = mDtos.stream().collect(Collectors.toMap(dto -> dto.getDealerCode(), dto -> dto));
Map<String,String> deptMap = sysDeptDao.getDeptCodeAndNameMap(); // Map<String,String> deptMap = sysDeptDao.getDeptCodeAndNameMap();
Map<String,String> userMap = sysUserDao.getUserNoAndNameMap(); // Map<String,String> userMap = sysUserDao.getUserNoAndNameMap();
for (Map.Entry<String, List<QinceClienteleStoreDto>> storesEntry : groupStores.entrySet()) { for (Map.Entry<String, List<QinceClienteleStoreDto>> storesEntry : groupStores.entrySet()) {
QinceMarketEmployeeDto mDto = dealerMap.get(storesEntry.getKey()); QinceMarketEmployeeDto mDto = dealerMap.get(storesEntry.getKey());
...@@ -135,24 +136,27 @@ public class QinceDealerQueryServiceImpl implements IQinceDealerQueryService { ...@@ -135,24 +136,27 @@ public class QinceDealerQueryServiceImpl implements IQinceDealerQueryService {
continue; continue;
} }
List<QinceClienteleStoreDto> stores = storesEntry.getValue(); List<QinceClienteleStoreDto> stores = storesEntry.getValue();
String dqtq = "BM0020".equals(mDto.getDqDeptCode()) ? "北京特区" : deptMap.get(mDto.getDqDeptCode()); // String dqtq = "BM0020".equals(mDto.getDqDeptCode()) ? "北京特区" : deptMap.get(mDto.getDqDeptCode());
pushQinceStoreInfo(stores, dqtq, deptMap.get(mDto.getZqDeptCode()), mDto, userMap); pushQinceStoreInfo(stores, mDto);
log.info("push qc 终端(架构/负责人)success:{}:{}", mDto.getDealerName(),stores.size()); log.info("push qc 终端(架构/负责人)success:{}:{}", mDto.getDealerName(),stores.size());
} }
} }
private void pushQinceStoreInfo(List<QinceClienteleStoreDto> storeDtoList,String dqDeptName,String zqDeptName,QinceMarketEmployeeDto mDto,Map<String,String> userMap) { private void pushQinceStoreInfo(List<QinceClienteleStoreDto> storeDtoList,QinceMarketEmployeeDto mDto) {
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
for (QinceClienteleStoreDto storeDto : storeDtoList) { for (QinceClienteleStoreDto storeDto : storeDtoList) {
try { try {
List<Map<String, String>> exts = new ArrayList<>(); 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.getCsEmpName()) ? "" : mDto.getCsEmpName()));
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.getZqEmpName()) ? "" : mDto.getZqEmpName()));
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", Objects.isNull(mDto.getDqEmpName()) ? "" : mDto.getDqEmpName()));
exts.add(Maps.of("store_ext_key", "大区", "store_ext_value", dqDeptName)); exts.add(Maps.of("store_ext_key", "大区", "store_ext_value", mDto.getDqDeptName()));
exts.add(Maps.of("store_ext_key", "战区", "store_ext_value", zqDeptName)); exts.add(Maps.of("store_ext_key", "战区", "store_ext_value", mDto.getZqDeptName()));
params.put("store_waiqin_id", storeDto.getQcId()); params.put("store_waiqin_id", storeDto.getQcId());
// 客户经理
params.put("store_emp_code", mDto.getFEmpNo());
// 自定义字段
params.put("exts", exts); params.put("exts", exts);
String url = qinCeUtils.builderUrl(QinCeUtils.MODIFY_STORE, params); String url = qinCeUtils.builderUrl(QinCeUtils.MODIFY_STORE, params);
......
package com.sfa.job.xxljob.test;
import com.sfa.job.domain.ls.LsDisStoreDaoImpl;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author : liqiulin
* @date : 2025-04-08 13
* @describe :
*/
@Component
@Slf4j
public class TestTask {
@Autowired
private LsDisStoreDaoImpl lsDisStoreDaoImpl;
@XxlJob("ls_store_anhui")
public void lsStoreAnHui() {
lsDisStoreDaoImpl.baiduAddressAnHui(0L);
}
@XxlJob("ls_store_guangzhou")
public void lsStoreGuangzhou() {
lsDisStoreDaoImpl.baiduAddressGuangzhou(500000L);
}
@XxlJob("ls_store_ahsp")
public void lsStoreAnHuisp() {
lsDisStoreDaoImpl.baiduAddressAnHuisp(1000000L);
}
/**
* 逆地理编码
*/
@XxlJob("ls_store_n_anhui")
public void lsStoreNAnHui() {
lsDisStoreDaoImpl.nAddreasAnHui(0L);
}
@XxlJob("ls_store_n_xy")
public void lsStoreNXY() {
lsDisStoreDaoImpl.lsStoreNXY(250000L);
}
@XxlJob("ls_store_n_gh")
public void lsStoreNGH() {
lsDisStoreDaoImpl.lsStoreNGH(500000L);
}
@XxlJob("ls_store_n_hs")
public void lsStoreNHS() {
lsDisStoreDaoImpl.lsStoreNHS(750000L);
}
@XxlJob("ls_store_n_dx")
public void lsStoreNDX() {
lsDisStoreDaoImpl.lsStoreNDX(1000000L);
}
@XxlJob("ls_store_n_ql")
public void lsStoreNQL() {
lsDisStoreDaoImpl.lsStoreNQL(1250000L);
}
}
...@@ -9,36 +9,51 @@ ...@@ -9,36 +9,51 @@
<result property="dealerCode" column="dealer_code" jdbcType="VARCHAR"/> <result property="dealerCode" column="dealer_code" jdbcType="VARCHAR"/>
<result property="dealerName" column="dealer_name" jdbcType="VARCHAR"/> <result property="dealerName" column="dealer_name" jdbcType="VARCHAR"/>
<result property="dqDeptCode" column="dq_dept_code" jdbcType="VARCHAR"/> <result property="dqDeptCode" column="dq_dept_code" jdbcType="VARCHAR"/>
<result property="dqDeptName" column="dq_dept_name" jdbcType="VARCHAR"/>
<result property="zqDeptCode" column="zq_dept_code" jdbcType="VARCHAR"/> <result property="zqDeptCode" column="zq_dept_code" jdbcType="VARCHAR"/>
<result property="zqDeptName" column="zq_dept_name" jdbcType="VARCHAR"/>
<result property="dqEmpNo" column="dq_emp_no" 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="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="csEmpNo" column="cs_emp_no" jdbcType="VARCHAR"/>
<result property="csEmpName" column="cs_emp_name" jdbcType="VARCHAR"/>
<result property="fEmpNo" column="f_emp_no" jdbcType="VARCHAR"/>
<result property="fEmpName" column="f_emp_name" jdbcType="VARCHAR"/>
<result property="modifyTime" column="modify_time" jdbcType="TIMESTAMP"/> <result property="modifyTime" column="modify_time" jdbcType="TIMESTAMP"/>
</resultMap> </resultMap>
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
insert into qince_market_employee (dealer_code,dealer_name, dq_dept_code, zq_dept_code, dq_emp_no, zq_emp_no, cs_emp_no) insert into qince_market_employee (dealer_code, dealer_name, dq_dept_code, dq_dept_name, zq_dept_code,
zq_dept_name, dq_emp_no, dq_emp_name, zq_emp_no, zq_emp_name, cs_emp_no, cs_emp_name, f_emp_no, f_emp_name)
values values
<foreach collection="dos" item="item" separator=","> <foreach collection="dos" item="item" separator=",">
(#{item.dealerCode},#{item.dealerName},#{item.dqDeptCode},#{item.zqDeptCode},#{item.dqEmpNo},#{item.zqEmpNo},#{item.csEmpNo}) (#{item.dealerCode},#{item.dealerName},#{item.dqDeptCode},#{item.dqDeptName},#{item.zqDeptCode},#{item.zqDeptName},#{item.dqEmpNo},#{item.dqEmpName},#{item.zqEmpNo},#{item.zqEmpName},#{item.csEmpNo},#{item.csEmpName},#{item.fEmpNo},#{item.fEmpName})
</foreach> </foreach>
on duplicate key on duplicate key
update dq_dept_code = values(dq_dept_code), update dq_dept_code = values(dq_dept_code),
dq_dept_name = values(dq_dept_name),
zq_dept_code = values(zq_dept_code), zq_dept_code = values(zq_dept_code),
zq_dept_name = values(zq_dept_name),
dq_emp_no = values(dq_emp_no), dq_emp_no = values(dq_emp_no),
dq_emp_name = values(dq_emp_name),
zq_emp_no = values(zq_emp_no), zq_emp_no = values(zq_emp_no),
cs_emp_no = values(cs_emp_no); zq_emp_name = values(zq_emp_name),
cs_emp_no = values(cs_emp_no),
cs_emp_name = values(cs_emp_name),
f_emp_no = values(f_emp_no),
f_emp_name = values(f_emp_name);
</insert> </insert>
<select id="selectByTodayUpdate" resultMap="QinceMarketEmployeeResultMap"> <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 select dealer_code, dealer_name, dq_dept_code, dq_dept_name, zq_dept_code, zq_dept_name, dq_emp_no, dq_emp_name, zq_emp_no, zq_emp_name, cs_emp_no, cs_emp_name, f_emp_no, f_emp_name
from qince_market_employee from qince_market_employee
where date (modify_time) = date (current_date); where date (modify_time) = date (current_date)
</select> </select>
<select id="selectByDealerCodes" parameterType="java.util.Set" resultMap="QinceMarketEmployeeResultMap"> <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 select dealer_code, dealer_name, dq_dept_code, dq_dept_name, zq_dept_code, zq_dept_name, dq_emp_no, dq_emp_name, zq_emp_no, zq_emp_name, cs_emp_no, cs_emp_name, f_emp_no, f_emp_name
from qince_market_employee from qince_market_employee
where dealer_code in where dealer_code in
<foreach collection="dealerCodes" item="item" separator="," open="(" close=")"> <foreach collection="dealerCodes" item="item" separator="," open="(" close=")">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sfa.job.domain.ls.mapper.LsDisStoreMapper">
<resultMap id="LsDisStoreBase" type="com.sfa.job.domain.ls.LsDisStore">
<id property="ldsIf" column="lds_if" jdbcType="BIGINT"/>
<!-- <result property="disDivision" column="dis_division" jdbcType="VARCHAR"/>-->
<!-- <result property="disName" column="dis_name" jdbcType="VARCHAR"/>-->
<!-- <result property="disBrand" column="dis_brand" jdbcType="VARCHAR"/>-->
<!-- <result property="disProvince" column="dis_province" jdbcType="VARCHAR"/>-->
<!-- <result property="disCity" column="dis_city" jdbcType="VARCHAR"/>-->
<!-- <result property="dateYm" column="date_ym" jdbcType="VARCHAR"/>-->
<!-- <result property="outletCode" column="outlet_code" jdbcType="VARCHAR"/>-->
<result property="outletName" column="outlet_name" jdbcType="VARCHAR"/>
<!-- <result property="outletType" column="outlet_type" jdbcType="VARCHAR"/>-->
<!-- <result property="outletTypeWd" column="outlet_type_wd" jdbcType="VARCHAR"/>-->
<!-- <result property="outletTypeWx" column="outlet_type_wx" jdbcType="VARCHAR"/>-->
<!-- <result property="outletProvince" column="outlet_province" jdbcType="VARCHAR"/>-->
<!-- <result property="outletNesCity" column="outlet_nes_city" jdbcType="VARCHAR"/>-->
<result property="outletAddress" column="outlet_address" jdbcType="VARCHAR"/>
<result property="lng" column="lng" jdbcType="VARCHAR"/>
<result property="lat" column="lat" jdbcType="VARCHAR"/>
<result property="reProvince" column="re_province" jdbcType="VARCHAR"/>
<result property="reCity" column="re_city" jdbcType="VARCHAR"/>
<result property="reArea" column="re_area" jdbcType="VARCHAR"/>
<!-- <result property="reAddress" column="re_address" jdbcType="VARCHAR"/>-->
<!-- <result property="saleValue" column="sale_value" jdbcType="DECIMAL"/>-->
</resultMap>
<!-- 修改 limit 数量-->
<select id="selectBaseO" resultMap="LsDisStoreBase">
select lds_if,re_province,re_city,outlet_address,outlet_name
from ls_dis_store where lds_if &gt; #{lastId} and lds_if &lt;= 500000 and re_area is null and lng is null limit 1000;
</select>
<update id="updateListO" parameterType="java.util.List">
<foreach collection="lsDisStores" item="item" separator=";">
update ls_dis_store set lng = #{item.lng} where lds_if = #{item.ldsIf}
</foreach>
</update>
<select id="selectBaseT" resultMap="LsDisStoreBase">
select lds_if,re_province,re_city,outlet_address,outlet_name
from ls_dis_store where lds_if &gt; #{lastId} and lds_if &lt;= 1000000 and re_area is null and lng is null limit 1000;
</select>
<update id="updateListT" parameterType="java.util.List">
<foreach collection="lsDisStores" item="item" separator=";">
update ls_dis_store set lng = #{item.lng} where lds_if = #{item.ldsIf}
</foreach>
</update>
<select id="selectBaseS" resultMap="LsDisStoreBase">
select lds_if,re_province,re_city,outlet_address,outlet_name
from ls_dis_store where lds_if &gt; #{lastId} and lds_if &lt;= 1537130 and re_area is null and lng is null limit 1000;
</select>
<update id="updateListS" parameterType="java.util.List">
<foreach collection="lsDisStores" item="item" separator=";">
update ls_dis_store set lng = #{item.lng} where lds_if = #{item.ldsIf}
</foreach>
</update>
<select id="selectBaseLO" resultMap="LsDisStoreBase">
select lds_if,lng
from ls_dis_store where lng is not null and re_area is null limit 1000;
</select>
<select id="selectBaseLT" resultMap="LsDisStoreBase">
select lds_if,lng
from ls_dis_store where lng is not null and re_area is null and lds_if &gt; #{lastId} and lds_if &lt;= 500000 limit 1000;
</select>
<select id="selectBaseLS" resultMap="LsDisStoreBase">
select lds_if,lng
from ls_dis_store where lng is not null and re_area is null and lds_if &gt; #{lastId} and lds_if &lt;= 750000 limit 1000;
</select>
<select id="selectBaseLF" resultMap="LsDisStoreBase">
select lds_if,lng
from ls_dis_store where lng is not null and re_area is null and lds_if &gt; #{lastId} and lds_if &lt;= 1000000 limit 1000;
</select>
<select id="selectBaseLV" resultMap="LsDisStoreBase">
select lds_if,lng
from ls_dis_store where lng is not null and re_area is null and lds_if &gt; #{lastId} and lds_if &lt;= 1250000 limit 1000;
</select>
<select id="selectBaseLX" resultMap="LsDisStoreBase">
select lds_if,lng
from ls_dis_store where lng is not null and re_area is null and lds_if &gt; #{lastId} and lds_if &lt;= 1537130 limit 1000;
</select>
<update id="updateListNO" parameterType="java.util.List">
<foreach collection="lsDisStores" item="item" separator=";">
update ls_dis_store set re_address = #{item.reAddress},re_area = #{item.reArea} where lds_if = #{item.ldsIf}
</foreach>
</update>
</mapper>
...@@ -7,18 +7,12 @@ ...@@ -7,18 +7,12 @@
<select id="findListByDealerId" resultType="com.sfa.job.domain.qince.entity.QinceClienteleStore"> <select id="findListByDealerId" resultType="com.sfa.job.domain.qince.entity.QinceClienteleStore">
select qc_id, store_name, store_code select qc_id, store_name, store_code
from qince_clientele_store from qince_clientele_store
where dealer_id = #{dealerId} where dealer_id = #{dealerId} and store_status = '1'
and store_cooperate_status = '1'
and store_approval_status = 3
and store_status = '1'
</select> </select>
<select id="findListByCreateDate" resultType="com.sfa.job.domain.qince.entity.QinceClienteleStore"> <select id="findListByCreateDate" resultType="com.sfa.job.domain.qince.entity.QinceClienteleStore">
select qc_id, store_name, store_code,dealer_id,dealers_name,create_time select qc_id, store_name, store_code,dealer_id,dealers_name,create_time
from qince_clientele_store from qince_clientele_store
where create_time like concat(#{yesterday},'%') where create_time like concat(#{yesterday},'%') and store_status = '1'
and store_cooperate_status = '1'
and store_approval_status = 3
and store_status = '1';
</select> </select>
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论