Commit 47b8b75e by zhiwj

导购导入优化

parent 914990c0
......@@ -87,6 +87,7 @@ public class ClerkTmpDTO implements Serializable {
*/
private String operatorName;
private String clerkType;
private boolean replace;
public Integer getClerkTmpId() {
return clerkTmpId;
......@@ -231,4 +232,12 @@ public class ClerkTmpDTO implements Serializable {
public void setRegionName(String regionName) {
this.regionName = regionName;
}
public void setReplace(boolean replace) {
this.replace = replace;
}
public boolean getReplace() {
return replace;
}
}
......@@ -51,10 +51,11 @@ public interface ClerkImportApiService {
* @param enterpriseId 企业id
* @param userId 操作人
* @param uuId 上传任务的唯一标识
* @param isReplace
* @return com.gic.api.base.commons.ServiceResponse<java.lang.String>
* @throws
*/
ServiceResponse<String> importDataToClerk(Integer enterpriseId, String userId, String uuId);
ServiceResponse<String> importDataToClerk(Integer enterpriseId, String userId, String uuId, boolean isReplace);
/**
* @Title: listClerkTmp
......@@ -124,4 +125,16 @@ public interface ClerkImportApiService {
* @throws
*/
ServiceResponse<List<List<String>>> listError(Integer enterpriseId);
/**
* @Title: validateClerkCode
* @Description:
* @author zhiwj
* @param enterpriseId
* @param storeInfoId
* @param clerkCode
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Boolean>
* @throws
*/
ServiceResponse<Boolean> validateClerkCode(Integer enterpriseId, Integer storeInfoId, String clerkCode);
}
......@@ -15,10 +15,11 @@ public interface ClerkTaskApiService {
* @param enterpriseId 企业id
* @param userId 操作人
* @param uuId 上传唯一参数
* @param isReplace
* @return java.lang.String
* @throws
*/
String importDataToClerk(Integer enterpriseId, String userId, String uuId);
String importDataToClerk(Integer enterpriseId, String userId, String uuId, boolean isReplace);
/**
* @Title: run
......
......@@ -5,8 +5,10 @@ import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.store.dto.ClerkTmpDTO;
import com.gic.store.entity.TabClerk;
import com.gic.store.service.ClerkImportApiService;
import com.gic.store.service.ClerkImportService;
import com.gic.store.service.ClerkService;
import com.gic.store.service.ClerkTaskApiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -28,6 +30,9 @@ public class ClerkImportApiServiceImpl implements ClerkImportApiService {
@Autowired
private ClerkTaskApiService clerkTaskService;
@Autowired
private ClerkService clerkService;
@Override
public ServiceResponse<Boolean> hasImportingClerk(Integer enterpriseId) {
return ServiceResponse.success(clerkImportService.hasImportingClerk(enterpriseId));
......@@ -46,8 +51,8 @@ public class ClerkImportApiServiceImpl implements ClerkImportApiService {
}
@Override
public ServiceResponse<String> importDataToClerk(Integer enterpriseId, String userId, String uuId) {
return ServiceResponse.success(clerkTaskService.importDataToClerk(enterpriseId, userId, uuId));
public ServiceResponse<String> importDataToClerk(Integer enterpriseId, String userId, String uuId, boolean isReplace) {
return ServiceResponse.success(clerkTaskService.importDataToClerk(enterpriseId, userId, uuId, isReplace));
}
@Override
......@@ -116,4 +121,10 @@ public class ClerkImportApiServiceImpl implements ClerkImportApiService {
}
return ServiceResponse.success(resultList);
}
@Override
public ServiceResponse<Boolean> validateClerkCode(Integer enterpriseId, Integer storeInfoId, String clerkCode) {
TabClerk clerk = clerkService.getClerkByCode(enterpriseId, clerkCode, storeInfoId);
return ServiceResponse.success(clerk != null);
}
}
package com.gic.store.service.outer.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.store.constant.*;
import com.gic.store.dto.ClerkDTO;
import com.gic.store.dto.ClerkTmpDTO;
import com.gic.store.dto.StoreDTO;
import com.gic.store.dto.StoreRegionDTO;
import com.gic.store.dto.*;
import com.gic.store.entity.TabClerkPosition;
import com.gic.store.entity.TabClerkTmp;
import com.gic.store.service.*;
......@@ -14,6 +13,7 @@ import com.task.allocation.api.AbstractTaskAllocationOperation;
import com.task.allocation.exception.TaskAllocationException;
import com.task.allocation.qo.InitTaskQO;
import com.task.allocation.util.TaskAllocationSdkClient;
import org.apache.commons.collections.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -44,7 +44,7 @@ public class ClerkTaskServiceImpl extends AbstractTaskAllocationOperation implem
private StoreRegionService storeRegionService;
@Override
public String importDataToClerk(Integer enterpriseId, String userId, String uuId) {
public String importDataToClerk(Integer enterpriseId, String userId, String uuId, boolean isReplace) {
logger.info("enterpriseId:{}, userId:{}, uuId:{}", enterpriseId, userId, uuId);
String message = "";
InitTaskQO initTaskQo = new InitTaskQO();
......@@ -53,8 +53,14 @@ public class ClerkTaskServiceImpl extends AbstractTaskAllocationOperation implem
// key
initTaskQo.setTaskMqKey(Constants.CLERK_BATCH_IMPORT_MQ_KEY);// 注册的队列名称
initTaskQo.setTaskType(Constants.CLERK_BATCH_IMPORT_TASK_TYPE);// 任务类型
initTaskQo.setParams(enterpriseId.toString());// 你自己处理需要的参数
initTaskQo.setTaskSignKey(uuId);// 任务类型 唯一标识符
JSONObject params = new JSONObject();
//如果门店code重复,是否替换更新
params.put("isReplace", isReplace);
params.put("enterpriseId", enterpriseId);
initTaskQo.setParams(params.toString());
try {
TaskAllocationSdkClient instance = TaskAllocationSdkClient.getInstance();// 初始化sdk
instance.initTask(initTaskQo);// 初始化接口
......@@ -68,9 +74,18 @@ public class ClerkTaskServiceImpl extends AbstractTaskAllocationOperation implem
@Override
public List<Object> getListTasks(String params) {
List<TabClerkTmp> list = clerkImportService.listUnImportClerk(params);
JSONObject json = JSON.parseObject(params);
String enterpriseId = json.getString("enterpriseId");
boolean isReplace = json.getBoolean("isReplace");
List<TabClerkTmp> list = clerkImportService.listUnImportClerk(enterpriseId);
logger.info("导购批量导入放入队列数据数量:{}", list.size());
List listTask = EntityUtil.changeEntityListByOrika(ClerkTmpDTO.class, list);
List<ClerkTmpDTO> taskList = EntityUtil.changeEntityListByJSON(ClerkTmpDTO.class, list);
if (CollectionUtils.isNotEmpty(taskList)) {
for (ClerkTmpDTO dto : taskList) {
dto.setReplace(isReplace);
}
}
List listTask = taskList;
return listTask;
}
......
......@@ -23,7 +23,6 @@ import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
......@@ -127,10 +126,9 @@ public class StoreTaskServiceImpl extends AbstractTaskAllocationOperation implem
// 判断门店品牌
String brands = t.getBrands();
if (StringUtils.isNotBlank(brands)) {
String[] brandArr = brands.trim().split("、");
List<TabStoreBrand> storeBrandList = storeBrandService.listAllStoreBrand(t.getEnterpriseId(), null);
TabStoreBrand storeBrand = storeBrandService.getByStoreBrandName(t.getEnterpriseId(), brands);
List<Integer> list = new ArrayList<>();
// String[] brandArr = brands.trim().split("、");
// List<TabStoreBrand> storeBrandList = storeBrandService.listAllStoreBrand(t.getEnterpriseId(), null);
// List<Integer> list = new ArrayList<>();
// for (String brandName : brandArr) {
// for (TabStoreBrand storeBrand : storeBrandList) {
// if (storeBrand.getStoreBrandName().equals(brandName)) {
......@@ -140,6 +138,7 @@ public class StoreTaskServiceImpl extends AbstractTaskAllocationOperation implem
// }
// }
// storeDTO.setBrandIds(Joiner.on(GlobalInfo.FLAG_COMMA).join(list));
TabStoreBrand storeBrand = storeBrandService.getByStoreBrandName(t.getEnterpriseId(), brands);
storeDTO.setBrandIds(storeBrand.getStoreBrandId().toString());
}
// 判断省市区
......
......@@ -117,6 +117,12 @@ public class ClerkImportController {
if (file.getSize() > 0) {
String fileName = file.getOriginalFilename();
String uuId = request.getParameter("uuId");
String repeatStoreCodeConfig = request.getParameter("repeatStoreCodeConfig");
if (StringUtils.isBlank(repeatStoreCodeConfig)) {
repeatStoreCodeConfig = "0";
}
//如果门店code重复,是否替换更新
boolean isReplace = "1".equals(repeatStoreCodeConfig);
if (fileName.endsWith("xlsx") || fileName.endsWith("xls")) {
try {
Workbook workbook = ExcelUtils.getWorkbookFromUpload(file.getInputStream(), fileName);
......@@ -128,7 +134,7 @@ public class ClerkImportController {
int logCount = 0;
StringBuilder sb = new StringBuilder();
for (Map<Integer, String> row : data) {
ClerkTmpDTO bean = this.validateData(row, enterpriseId);
ClerkTmpDTO bean = this.validateData(row, enterpriseId, isReplace);
try {
bean.setSignKey(uuId);
// 保存数据到临时表
......@@ -151,8 +157,10 @@ public class ClerkImportController {
LogUtils.createLog("批量导入", sb.toString());
if (clerkImportApiService.hasImportingClerk(enterpriseId).getResult()) {
// userId
Integer userId = UserDetailUtils.getUserDetail().getUserInfo().getUserId();
// 开队列
String r = clerkImportApiService.importDataToClerk(enterpriseId, "123", uuId).getResult();
String r = clerkImportApiService.importDataToClerk(enterpriseId, userId.toString(), uuId, isReplace).getResult();
if (StringUtils.isNotBlank(r)) {
logger.warn("队列错误, {}", r);
return RestResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "网络错误");
......@@ -251,7 +259,7 @@ public class ClerkImportController {
}
private ClerkTmpDTO validateData(Map<Integer, String> row, Integer enterpriseId) {
private ClerkTmpDTO validateData(Map<Integer, String> row, Integer enterpriseId, boolean isReplace) {
boolean validate = true;
ClerkTmpDTO bean = new ClerkTmpDTO();
bean.setEnterpriseId(enterpriseId);
......@@ -354,8 +362,16 @@ public class ClerkImportController {
} else if (StoreOwnTypeEnum.OWNER.getCode() != storeDTO.getOwnType()) {
bean.setErrorMessage("不能在被授权门店下导入导购");
validate = false;
}else if (!isReplace) {
// 验证code唯一
if (clerkImportApiService.validateClerkCode(enterpriseId, storeDTO.getStoreInfoId(), clerkCode).getResult()) {
bean.setErrorMessage("导购编码重复");
validate = false;
}
}
}
// 验证岗位
String positionName = row.get(6);
if (validate) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment