Merge branch 'develop' into feature/ticket-add-solution
This commit is contained in:
commit
84b9043cb4
|
|
@ -234,7 +234,7 @@ public class CustomerController extends ControllerBase {
|
|||
@PostMapping("syncFromCrm")
|
||||
@MethodInfoMark(value = "同步数据" ,menuName = "客户管理")
|
||||
public ApiResult<Boolean> syncFromCrm(@RequestBody SyncFromCrmDTO param){
|
||||
adminCustomerService.syncFromCrm(param.getStartDate(),param.getEndDate());
|
||||
adminCustomerService.syncFromCrm(param);
|
||||
return ApiResult.success(true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ public class DeviceController extends ControllerBase {
|
|||
@PostMapping("syncFromCrm")
|
||||
@MethodInfoMark(value = "同步数据" ,menuName = "设备管理")
|
||||
public ApiResult<Boolean> syncFromCrm(@RequestBody SyncFromCrmDTO param){
|
||||
adminDeviceService.syncFormCrm(param.getStartDate(),param.getEndDate());
|
||||
adminDeviceService.syncFormCrm(param);
|
||||
return ApiResult.success(true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package com.nflg.mobilebroken.admin.pojo.dto;
|
||||
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
public class SyncFromCrmDTO {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3,19 +3,16 @@ package com.nflg.mobilebroken.admin.service;
|
|||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.nflg.mobilebroken.admin.constant.Constant;
|
||||
import com.nflg.mobilebroken.admin.pojo.vo.AgentManagerVO;
|
||||
import com.nflg.mobilebroken.admin.pojo.dto.SyncFromCrmDTO;
|
||||
import com.nflg.mobilebroken.admin.pojo.vo.CmrAgentResultVO;
|
||||
import com.nflg.mobilebroken.admin.pojo.vo.CustomerExcelVO;
|
||||
import com.nflg.mobilebroken.common.constant.STATE;
|
||||
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
||||
import com.nflg.mobilebroken.common.util.UniqueSequenceGenerator;
|
||||
import com.nflg.mobilebroken.common.util.VUtils;
|
||||
import com.nflg.mobilebroken.repository.entity.Device;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseArea;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseCustomer;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseAreaService;
|
||||
|
|
@ -45,6 +42,7 @@ public class AdminCustomerService {
|
|||
|
||||
/**
|
||||
* 导入
|
||||
*
|
||||
* @param data
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
|
@ -100,19 +98,18 @@ public class AdminCustomerService {
|
|||
/**
|
||||
* crm-同步数据
|
||||
*/
|
||||
public void syncFromCrm(String startDate, String endDate){
|
||||
public void syncFromCrm(SyncFromCrmDTO dateParam) {
|
||||
|
||||
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate stDate = LocalDate.parse(startDate, dateFormatter);
|
||||
LocalDate edDate = LocalDate.parse(endDate, dateFormatter);
|
||||
|
||||
// 循环从起始日期到结束日期,每次增加一天
|
||||
List<TBaseCustomer> result = new ArrayList<>();
|
||||
for (LocalDate date = stDate; !date.isAfter(edDate); date = date.plusDays(1)) {
|
||||
result.clear();
|
||||
// for (LocalDate date = stDate; !date.isAfter(edDate); date = date.plusDays(1)) {
|
||||
|
||||
List<CmrAgentResultVO> agentList = crmService.getAgent(date.toString());
|
||||
|
||||
List<CmrAgentResultVO> agentList = crmService.getAgent(dateParam);
|
||||
if (CollUtil.isEmpty(agentList)) {
|
||||
continue;
|
||||
return;
|
||||
}
|
||||
Set<String> crmComanyCodes = agentList.stream().map(u -> u.getId()).collect(Collectors.toSet());
|
||||
List<TBaseCustomer> crmCompanyList = baseCustomerService.lambdaQuery().in(TBaseCustomer::getAgencyCompanyCode, crmComanyCodes).list();
|
||||
|
|
@ -150,7 +147,7 @@ public class AdminCustomerService {
|
|||
if (CollUtil.isNotEmpty(result)) {
|
||||
baseCustomerService.saveOrUpdateBatch(result);
|
||||
}
|
||||
}
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||
import com.google.common.collect.ImmutableList;
|
||||
import com.nflg.mobilebroken.admin.constant.DeviceSourceFromEnum;
|
||||
import com.nflg.mobilebroken.admin.pojo.dto.DeviceDTO;
|
||||
import com.nflg.mobilebroken.admin.pojo.dto.SyncFromCrmDTO;
|
||||
import com.nflg.mobilebroken.admin.pojo.vo.CmrDeviceResultVO;
|
||||
import com.nflg.mobilebroken.admin.pojo.vo.DeviceExcelVO;
|
||||
import com.nflg.mobilebroken.common.constant.STATE;
|
||||
|
|
@ -74,6 +75,7 @@ public class AdminDeviceService {
|
|||
|
||||
/**
|
||||
* 导入
|
||||
*
|
||||
* @param data
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
|
@ -110,21 +112,21 @@ public class AdminDeviceService {
|
|||
/**
|
||||
* 同步CRM 数据
|
||||
*
|
||||
* @param startDate
|
||||
* @param endDate
|
||||
* @param dateParam
|
||||
* @param dateParam
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void syncFormCrm(String startDate, String endDate) {
|
||||
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate stDate = LocalDate.parse(startDate, dateFormatter);
|
||||
LocalDate edDate = LocalDate.parse(endDate, dateFormatter);
|
||||
public void syncFormCrm(SyncFromCrmDTO dateParam) {
|
||||
// DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
// LocalDate stDate = LocalDate.parse(startDate, dateFormatter);
|
||||
// LocalDate edDate = LocalDate.parse(endDate, dateFormatter);
|
||||
// 循环从起始日期到结束日期,每次增加一天
|
||||
List<Device> result = new ArrayList<>();
|
||||
for (LocalDate date = stDate; !date.isAfter(edDate); date = date.plusDays(1)) {
|
||||
result.clear();
|
||||
List<CmrDeviceResultVO> crmDeviceList = crmService.getAsset(date.toString());
|
||||
// for (LocalDate date = stDate; !date.isAfter(edDate); date = date.plusDays(1)) {
|
||||
|
||||
List<CmrDeviceResultVO> crmDeviceList = crmService.getAsset(dateParam);
|
||||
if (CollUtil.isEmpty(crmDeviceList)) {
|
||||
continue;
|
||||
return;
|
||||
}
|
||||
Set<String> crmDeviceNos = crmDeviceList.stream().map(u -> u.getMachine_Number__c()).collect(Collectors.toSet());
|
||||
|
||||
|
|
@ -172,6 +174,6 @@ public class AdminDeviceService {
|
|||
deviceService.saveOrUpdateBatch(result);
|
||||
}
|
||||
|
||||
}
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
|
|||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.nflg.mobilebroken.admin.pojo.dto.CrmGetTokenResultDTO;
|
||||
import com.nflg.mobilebroken.admin.pojo.dto.SyncFromCrmDTO;
|
||||
import com.nflg.mobilebroken.admin.pojo.vo.CmrAgentResultVO;
|
||||
import com.nflg.mobilebroken.admin.pojo.vo.CmrDeviceResultVO;
|
||||
import com.nflg.mobilebroken.common.constant.STATE;
|
||||
|
|
@ -90,17 +91,17 @@ public class CrmService {
|
|||
|
||||
/**
|
||||
* 获取代理商列表
|
||||
* @param date yyyy-MM-dd
|
||||
* @param dateParam yyyy-MM-dd
|
||||
* @return
|
||||
*/
|
||||
public List<CmrAgentResultVO> getAgent(String date) {
|
||||
public List<CmrAgentResultVO> getAgent(SyncFromCrmDTO dateParam) {
|
||||
try {
|
||||
HttpUtils httpUtils = new HttpUtils();
|
||||
Map<String, String> paramMp = new HashMap<>();
|
||||
Map<String, String> reBody = new HashMap<>();
|
||||
reBody.put("CrLsDate", date);
|
||||
// Map<String, String> paramMp = new HashMap<>();
|
||||
// Map<String, String> reBody = new HashMap<>();
|
||||
// reBody.put("CrLsDate", date);
|
||||
String token = StrUtil.join(" ", "Bearer", getToken());
|
||||
String orderResult = httpUtils.doPost(getAgentUrl, JSON.toJSONString(reBody), token);
|
||||
String orderResult = httpUtils.doPost(getAgentUrl, JSON.toJSONString(dateParam), token);
|
||||
JSONObject jsonObject = JSONObject.parseObject(orderResult);
|
||||
String code = jsonObject.getString("code");
|
||||
if (Objects.equals(code, "0")) {
|
||||
|
|
@ -117,14 +118,14 @@ public class CrmService {
|
|||
* 获取设备
|
||||
*/
|
||||
|
||||
public List<CmrDeviceResultVO> getAsset(String startDate) {
|
||||
public List<CmrDeviceResultVO> getAsset(SyncFromCrmDTO dateParam) {
|
||||
try {
|
||||
HttpUtils httpUtils = new HttpUtils();
|
||||
Map<String, String> paramMp = new HashMap<>();
|
||||
Map<String, String> reBody = new HashMap<>();
|
||||
reBody.put("CrLsDate", startDate);
|
||||
// reBody.put("CrLsDate", startDate);
|
||||
String token = StrUtil.join(" ", "Bearer", getToken());
|
||||
String orderResult = httpUtils.doPost(getDeviceUrl, JSON.toJSONString(reBody), token);
|
||||
String orderResult = httpUtils.doPost(getDeviceUrl, JSON.toJSONString(dateParam), token);
|
||||
JSONObject jsonObject = JSONObject.parseObject(orderResult);
|
||||
String code = jsonObject.getString("code");
|
||||
if (Objects.equals(code, "0")) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
|||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.nflg.mobilebroken.admin.pojo.dto.SyncFromCrmDTO;
|
||||
import com.nflg.mobilebroken.admin.pojo.dto.TiketTimeoutDTO;
|
||||
import com.nflg.mobilebroken.admin.publisher.TicketEventPublisher;
|
||||
import com.nflg.mobilebroken.admin.service.SsePushService;
|
||||
|
|
@ -207,7 +208,7 @@ public class TicketScheduledTasks {
|
|||
LocalDate previousDate = currentDate.minusDays(1);
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
String cdate = formatter.format(previousDate);
|
||||
adminCustomerService.syncFromCrm(cdate,cdate);
|
||||
adminCustomerService.syncFromCrm(new SyncFromCrmDTO(cdate,cdate) );
|
||||
log.info("同步代理商公司-成功");
|
||||
}
|
||||
|
||||
|
|
@ -222,7 +223,7 @@ public class TicketScheduledTasks {
|
|||
LocalDate previousDate = currentDate.minusDays(1);
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
String cdate = formatter.format(previousDate);
|
||||
adminDeviceService.syncFormCrm(cdate,cdate);
|
||||
adminDeviceService.syncFormCrm(new SyncFromCrmDTO(cdate,cdate) );
|
||||
log.info("同步CRM设备-成功");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import cn.hutool.core.util.StrUtil;
|
||||
import com.nflg.mobilebroken.admin.AdminApplication;
|
||||
import com.nflg.mobilebroken.admin.annotation.ApiMark;
|
||||
import com.nflg.mobilebroken.admin.pojo.dto.SyncFromCrmDTO;
|
||||
import com.nflg.mobilebroken.admin.service.AdminCustomerService;
|
||||
import com.nflg.mobilebroken.admin.service.AdminDeviceService;
|
||||
import com.nflg.mobilebroken.admin.service.CrmService;
|
||||
|
|
@ -32,9 +33,14 @@ public class ControllerTest {
|
|||
@Resource
|
||||
AdminCustomerService customerService;
|
||||
|
||||
@Resource
|
||||
AdminDeviceService deviceService;
|
||||
|
||||
@Test
|
||||
public void testToken(){
|
||||
customerService.syncFromCrm("2025-02-21","2025-02-22"); //2020-05-21
|
||||
// customerService.syncFromCrm(new SyncFromCrmDTO("2025-02-21","2025-02-25") ); //2020-05-21
|
||||
|
||||
deviceService.syncFormCrm(new SyncFromCrmDTO("2025-02-21","2025-02-25") );
|
||||
// String qu = UniqueSequenceGenerator.generateCode("QU");
|
||||
// System.out.println(qu);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
package com.nflg.mobilebroken.cfs.config;
|
||||
|
||||
import com.nflg.mobilebroken.cfs.interceptor.LanguageInterceptor;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Configuration
|
||||
public class WebConfig implements WebMvcConfigurer {
|
||||
|
||||
@Resource
|
||||
private LanguageInterceptor languageInterceptor;
|
||||
|
||||
@Override
|
||||
public void addInterceptors(InterceptorRegistry registry) {
|
||||
// 注册拦截器并指定拦截路径
|
||||
registry.addInterceptor(languageInterceptor).addPathPatterns("/**");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package com.nflg.mobilebroken.cfs.interceptor;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.nflg.mobilebroken.common.util.MultilingualUtil;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
@Component
|
||||
public class LanguageInterceptor implements HandlerInterceptor {
|
||||
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
// 从请求头中获取 language 参数
|
||||
String language = request.getHeader("language");
|
||||
if(StrUtil.isNotBlank(language)){
|
||||
MultilingualUtil.setLanguage(language);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||
// 请求完成后清理 ThreadLocal,防止内存泄漏
|
||||
MultilingualUtil.clear();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue