Commit 38251fff by guojuxing

门店批量导入:如果门店code重复,是替换还是报错,添加配置

parent 5e0510f7
......@@ -129,6 +129,10 @@ public class StoreTmpDTO implements Serializable {
*
*/
private String operatorName;
/**
* 如果有门店code重复,是否替换更新
*/
private boolean isReplace;
public Integer getStoreTmpId() {
return storeTmpId;
......@@ -337,4 +341,12 @@ public class StoreTmpDTO implements Serializable {
public void setOperatorName(String operatorName) {
this.operatorName = operatorName;
}
public boolean isReplace() {
return isReplace;
}
public void setReplace(boolean replace) {
isReplace = replace;
}
}
......@@ -41,10 +41,11 @@ public interface StoreImportApiService {
* @param enterpriseId
* @param userId
* @param uuId
* @param isReplace 如果门店code重复,是否替换更新
* @return com.gic.api.base.commons.ServiceResponse<java.lang.String>
* @throws
*/
ServiceResponse<String> importDataToStore(Integer enterpriseId, String userId, String uuId);
ServiceResponse<String> importDataToStore(Integer enterpriseId, String userId, String uuId, boolean isReplace);
/**
* @Title: save
......
......@@ -16,10 +16,11 @@ public interface StoreTaskApiService {
* @param enterpriseId
* @param userId
* @param uuId
* @param isReplace 如果门店code重复,是否替换更新
* @return java.lang.String
* @throws
*/
String importDataToStore(Integer enterpriseId, String userId, String uuId);
String importDataToStore(Integer enterpriseId, String userId, String uuId, boolean isReplace);
/**
* @Title: run
......
......@@ -87,6 +87,8 @@ public interface TabStoreInfoMapper {
TabStoreInfo getByStore(@Param("store") StoreDTO store);
StoreDTO getDTOByStore(@Param("store") StoreDTO store);
Integer getStoreOwnerByStoreInfoId(@Param("enterpriseId") Integer enterpriseId, @Param("storeInfoId") Integer storeInfoId);
Integer getStoreIdByStoreInfoId(@Param("enterpriseId") Integer enterpriseId, @Param("storeInfoId") Integer storeInfoId);
......
......@@ -85,6 +85,18 @@ public interface StoreService {
boolean validateStoreCodeIsExist(Integer enterpriseId, Integer regionId, String storeCode, Integer storeId);
/**
* 严重是否门店code重复,返回门店ID
* @Title: validateStoreCodeIsExist

* @Description:

 * @author guojuxing
* @param enterpriseId
* @param regionId
* @param storeCode
* @return java.lang.Integer


 */
Integer validateStoreCodeIsExist(Integer enterpriseId, Integer regionId, String storeCode);
boolean validateStoreNameIsExist(Integer enterpriseId, Integer regionId, String storeName, Integer storeId);
int authAddStore(StoreDTO storeDTO);
......
......@@ -382,6 +382,16 @@ public class StoreServiceImpl implements StoreService {
}
@Override
public Integer validateStoreCodeIsExist(Integer enterpriseId, Integer regionId, String storeCode) {
StoreDTO store = new StoreDTO();
store.setEnterpriseId(enterpriseId);
store.setRegionId(regionId);
store.setStoreCode(storeCode);
StoreDTO result = this.tabStoreInfoMapper.getDTOByStore(store);
return result != null ? result.getStoreId() : null;
}
@Override
public boolean validateStoreNameIsExist(Integer enterpriseId, Integer regionId, String storeName, Integer storeId) {
StoreDTO store = new StoreDTO();
store.setEnterpriseId(enterpriseId);
......
......@@ -205,8 +205,8 @@ public class StoreImportApiServiceImpl implements StoreImportApiService {
@Override
public ServiceResponse<String> importDataToStore(Integer enterpriseId, String userId, String uuId) {
return ServiceResponse.success(storeTaskService.importDataToStore(enterpriseId, userId, uuId));
public ServiceResponse<String> importDataToStore(Integer enterpriseId, String userId, String uuId, boolean isReplace) {
return ServiceResponse.success(storeTaskService.importDataToStore(enterpriseId, userId, uuId, isReplace));
}
......
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.commons.util.GlobalInfo;
......@@ -16,16 +17,14 @@ 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.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
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;
import java.util.*;
/**
* @author zhiwj
......@@ -71,9 +70,19 @@ public class StoreTaskServiceImpl extends AbstractTaskAllocationOperation implem
@Override
public List<Object> getListTasks(String params) {
List<TabStoreTmp> list = storeImportService.listUnImportStore(params);
JSONObject json = (JSONObject) JSON.parse(params);
String enterpriseId = json.getString("enterpriseId");
boolean isReplace = json.getBoolean("isReplace");
List<TabStoreTmp> list = storeImportService.listUnImportStore(enterpriseId);
logger.info("门店批量导入放入队列数据数量:{}", list.size());
List listTask = EntityUtil.changeEntityListByOrika(StoreTmpDTO.class, list);
List<StoreTmpDTO> taskList = EntityUtil.changeEntityListByOrika(StoreTmpDTO.class, list);
if (CollectionUtils.isNotEmpty(taskList)) {
for (StoreTmpDTO dto : taskList) {
dto.setReplace(isReplace);
}
}
List listTask = taskList;
return listTask;
}
......@@ -98,9 +107,15 @@ public class StoreTaskServiceImpl extends AbstractTaskAllocationOperation implem
// 设置创建类型
storeDTO.setCreateType(CreateTypeEnum.BATCH_IMPORT.getCode());
// 判断code是否重复
if (storeService.validateStoreCodeIsExist(t.getEnterpriseId(), t.getRegionId(), t.getStoreCode(), null)) {
t.setErrorMessage("门店code已经存在");
storeImportService.updateData(t);
Integer storeId = storeService.validateStoreCodeIsExist(t.getEnterpriseId(), t.getRegionId(), t.getStoreCode());
if (storeId != null) {
if (t.isReplace()) {
//替换更新code重复的记录
storeDTO.setStoreId(storeId);
} else {
t.setErrorMessage("门店code已经存在");
storeImportService.updateData(t);
}
}
storeDTO.setStoreCode(t.getStoreCode());
storeDTO.setRegionId(t.getRegionId());
......@@ -257,7 +272,7 @@ public class StoreTaskServiceImpl extends AbstractTaskAllocationOperation implem
}
@Override
public String importDataToStore(Integer enterpriseId, String userId, String uuId) {
public String importDataToStore(Integer enterpriseId, String userId, String uuId, boolean isReplace) {
logger.info("enterpriseId:{}, userId:{}, uuId:{}", enterpriseId, userId, uuId);
String message = "";
InitTaskQO initTaskQo = new InitTaskQO();
......@@ -265,8 +280,13 @@ public class StoreTaskServiceImpl extends AbstractTaskAllocationOperation implem
initTaskQo.setOperationUserId(userId);// 操作人id
initTaskQo.setTaskMqKey(Constants.STORE_BATCH_IMPORT_MQ_KEY);// 注册的队列名称
initTaskQo.setTaskType(Constants.STORE_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);// 初始化接口
......
......@@ -504,6 +504,32 @@
and t2.store_id &lt;&gt; #{store.storeId}
</if>
</select>
<select id="getDTOByStore" resultMap="DTOResultMap" parameterType="com.gic.store.dto.StoreDTO">
select
<include refid="Base_Column_List" >
<property name="alias" value="t1"/>
</include>,
<include refid="Base_Column_List2" >
<property name="alias" value="t2"/>
</include>
from tab_store_info t1,tab_store t2 where t1.store_info_id = t2.store_info_id
<if test="store.enterpriseId != null ">
and t2.enterprise_id = #{store.enterpriseId}
</if>
<if test="store.regionId != null ">
and t1.region_id = #{store.regionId}
</if>
<if test="store.storeName != null and store.storeName != '' ">
and t1.store_name = #{store.storeName}
</if>
<if test="store.storeCode != null and store.storeCode != '' ">
and t1.store_code = #{store.storeCode}
</if>
<if test="store.storeId != null ">
and t2.store_id &lt;&gt; #{store.storeId}
</if>
</select>
<select id="getStoreOwnerByStoreInfoId" resultType="java.lang.Integer">
select
t2.own_type
......
......@@ -137,7 +137,9 @@ public class StoreImportController {
if (CollectionUtils.isNotEmpty(data) && titleList.size() != data.get(0).size()) {
return RestResponse.failure(ErrorCode.OPERATION_FAILED.getCode(), "总列数与模板不一致");
}
//重置临时表数据
storeImportApiService.delStoreTmp(enterpriseId);
//批量插入数据到门店临时表,用于队列导入到门店表
for (Map<Integer, String> row : data) {
StoreTmpDTO bean = this.validateData(row, enterpriseId, storeRegion.getRegionId());
bean.setRegionId(storeRegion.getRegionId());
......@@ -154,9 +156,17 @@ public class StoreImportController {
}
if (storeImportApiService.hasImportingStore(enterpriseId).getResult()) {
// TODO userId
// userId
Integer userId = UserDetailUtils.getUserDetail().getUserInfo().getUserId();
// 开队列
String r = storeImportApiService.importDataToStore(enterpriseId, "123", uuId).getResult();
//获取配置信息
String repeatStoreCodeConfig = request.getParameter("repeatStoreCodeConfig");
if (StringUtils.isBlank(repeatStoreCodeConfig)) {
repeatStoreCodeConfig = "0";
}
//如果门店code重复,是否替换更新
boolean isReplace = "1".equals(repeatStoreCodeConfig);
String r = storeImportApiService.importDataToStore(enterpriseId, userId.toString(), uuId, isReplace).getResult();
if (StringUtils.isNotBlank(r)) {
logger.warn("队列错误, {}", r);
return RestResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "网络错误");
......
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