Commit 920f8df3 authored by zuoyh's avatar zuoyh

Merge branch 'saff_update_feature' into dev

# Conflicts:
#	xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
parents 09ee2ade 44b35895
......@@ -55,6 +55,9 @@ public class AppShareholderDetailDTO {
@ApiModelProperty("公司集合")
private Map<Integer, String> companyMap;
@ApiModelProperty("公司数组")
private String[] companyList;
@ApiModelProperty("股东身份ID")
private Integer positionId;
......
......@@ -5,6 +5,7 @@ import lombok.Data;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
......@@ -49,4 +50,7 @@ public class AppShareholderDetailVo {
@ApiModelProperty("股东身份名称")
private String positionName;
@ApiModelProperty("股东身份名称")
private List<String> companyList;
}
......@@ -13,6 +13,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.slf4j.Slf4j;
......@@ -20,19 +21,19 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.mapreduce.GroupBy;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@Slf4j
@Transactional
@Service("appShareholderDetailBiz")
......@@ -53,6 +54,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
@Autowired
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
public static int HEADQUARTERS_SHAREHOLDER = 1;
public static int BRANCH_HEADQUARTERS_SHAREHOLDER = 2;
......@@ -75,21 +77,24 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
public ObjectRestResponse add(AppShareholderDetailDTO appShareholderDetailDTO, Integer updUserId) {
if (appShareholderDetailDTO == null || StringUtils.isBlank(appShareholderDetailDTO.getName()) || StringUtils.isBlank(appShareholderDetailDTO.getPhone()) ||
appShareholderDetailDTO.getCompanyMap().size() == 0) {
appShareholderDetailDTO.getCompanyList() == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "参数不能为空");
}
AppShareholderDetail appShareholderDetail = new AppShareholderDetail();
Map<Integer, String> companyMap = appShareholderDetailDTO.getCompanyMap();
String[] companyArray = appShareholderDetailDTO.getCompanyList();
for (Integer companyId : companyMap.keySet()) {
String companyName = companyMap.get(companyId);
if (!(companyId != null && companyId > 0 && StringUtils.isNotBlank(companyName)))
for (String company : companyArray) {
Integer companyId = Integer.valueOf(company);
if (!(companyId != null && companyId > 0))
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "分公司不存在");
BranchCompany branchCompany = vehicleFeign.companyId(companyName);
if (branchCompany == null) {
RestResponse<BranchCompany> branchCompany = vehicleFeign.get(companyId);
if (branchCompany.getData() == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "分公司不存在");
}
Integer positionId = branchCompany.getId().equals(1) ? HEADQUARTERS_SHAREHOLDER : BRANCH_HEADQUARTERS_SHAREHOLDER;
appShareholderDetailDTO.setCompanyId(companyId);
appShareholderDetailDTO.setCompanyName(branchCompany.getData().getName());
Integer positionId = branchCompany.getData().getId().equals(1) ? HEADQUARTERS_SHAREHOLDER : BRANCH_HEADQUARTERS_SHAREHOLDER;
//用户表更改其身份
Integer userId = 0;
//登陆表查询用户手机号
......@@ -108,13 +113,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail);
appShareholderDetail.setPositionId(positionId);
appShareholderDetailDTO.setUserId(userId);
//插入
if (id == null || id == 0) {
insertSelective(appShareholderDetail);
//編輯
} else {
updateSelectiveById(appShareholderDetail);
}
insertSelective(appShareholderDetail);
}
return ObjectRestResponse.succ();
}
......@@ -128,19 +127,21 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
PageDataVO<AppShareholderDetailVo> dataVO = new PageDataVO<>();
Example example = new Example(AppShareholderDetail.class);
Example.Criteria criteria = example.createCriteria();
if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getName())) {
example.createCriteria().andEqualTo("name", String.format("%%%s%%", appShareholderDetailFindDTO.getName().trim()));
criteria.andLike("name", String.format("%%%s%%", appShareholderDetailFindDTO.getName().trim()));
}
if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getPhone())) {
example.createCriteria().andEqualTo("phone", appShareholderDetailFindDTO.getPhone());
criteria.andEqualTo("phone", appShareholderDetailFindDTO.getPhone());
}
if (Objects.nonNull(appShareholderDetailFindDTO.getCompanyId())) {
example.createCriteria().andEqualTo("companyId", appShareholderDetailFindDTO.getCompanyId());
criteria.andEqualTo("companyId", appShareholderDetailFindDTO.getCompanyId());
}
if (Objects.nonNull(appShareholderDetailFindDTO.getPositionId())) {
example.createCriteria().andEqualTo("positionId", appShareholderDetailFindDTO.getPositionId());
criteria.andEqualTo("positionId", appShareholderDetailFindDTO.getPositionId());
}
example.setOrderByClause("crt_time desc");
List<AppShareholderDetail> list = mapper.selectByExample(example);
example.setOrderByClause("upd_time desc");
PageDataVO<AppShareholderDetail> pageDataVO = PageDataVO.pageInfo(appShareholderDetailFindDTO.getPage(), appShareholderDetailFindDTO.getLimit(), () -> mapper.selectByExample(example));
List<AppShareholderDetail> data = pageDataVO.getData();
if (CollectionUtils.isEmpty(data)) {
......@@ -153,16 +154,31 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
List<Integer> postionIds = data.stream().map(AppShareholderDetail::getPositionId).collect(Collectors.toList());
Map<Integer, AppUserPosition> postionMap = appUserPositionBiz.findPostionIdAndPostionMapByIds(postionIds);
List<AppShareholderDetailVo> AppShareholderDetailVos = new ArrayList<>();
List<AppShareholderDetailVo> AppShareholderDetailMerge = new ArrayList<>();
AppShareholderDetailVo appShareholderDetailVo;
for (AppShareholderDetail appShareholderDetail : data) {
appShareholderDetailVo = new AppShareholderDetailVo();
BeanUtils.copyProperties(appShareholderDetail, appShareholderDetailVo);
String postionName = postionMap == null ? "" : postionMap.get(appShareholderDetail.getPositionId()) == null ? "" : postionMap.get(appShareholderDetail.getPositionId()).getName();
appShareholderDetailVo.setPositionName(postionName);
AppShareholderDetailVos.add(appShareholderDetailVo);
}
for (AppShareholderDetailVo appShareholderDetailVoOld : AppShareholderDetailVos) {
boolean flag = true;
for (AppShareholderDetailVo appShareholderDetailVoNew : AppShareholderDetailMerge) {
if (appShareholderDetailVoNew.getPhone().equals(appShareholderDetailVoOld.getPhone()) && appShareholderDetailVoNew.getIsQuit().equals(appShareholderDetailVoOld.getIsQuit())) {//判断姓名是否相同
appShareholderDetailVoNew.setCompanyName(appShareholderDetailVoNew.getCompanyName() + "," + appShareholderDetailVoOld.getCompanyName());//姓名相同时,年龄相加
flag = false;
}
}
if (flag) {
AppShareholderDetailMerge.add(appShareholderDetailVoOld);//给整合后集合添加子元素
}
}
dataVO.setPageSize(pageDataVO.getPageSize());
dataVO.setPageNum(pageDataVO.getPageNum());
dataVO.setData(AppShareholderDetailVos);
dataVO.setData(AppShareholderDetailMerge);
dataVO.setTotalCount(pageDataVO.getTotalCount());
dataVO.setTotalPage(pageDataVO.getTotalPage());
return dataVO;
......@@ -174,8 +190,6 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public int importShareholder(List<String[]> shareholderData, Integer userId, String userName) {
List<AppShareholderDetail> appShareholderDetail = new ArrayList<>();
Integer discount = 0;
AtomicInteger counter = new AtomicInteger(0);
int threadNums = shareholderData.size() / BORDER_NUM == 0 ? 1 : shareholderData.size() / BORDER_NUM;
CountDownLatch latch = new CountDownLatch(threadNums);
for (int i = 0; i < threadNums; i++) {
......@@ -183,7 +197,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
int endIndex = i == (threadNums - 1) ? shareholderData.size() : (i + 1) * BORDER_NUM;
List<String[]> subResultDate = shareholderData.subList(startIndex, endIndex);
threadPoolTaskExecutor.execute(() -> {
wrapperData(subResultDate, discount, counter);
wrapperData(subResultDate);
latch.countDown();
});
try {
......@@ -191,18 +205,14 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
} catch (InterruptedException e) {
throw new BaseException("导入数据失败");
}
}
return appShareholderDetail.size();
}
/**
* @param subResultDate
* @param discount
* @param counter
*/
private void wrapperData(List<String[]> subResultDate, Integer discount, AtomicInteger counter) {
private void wrapperData(List<String[]> subResultDate) {
for (String[] data : subResultDate) {
String name = data[0];
......@@ -244,10 +254,8 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail);
mapper.insertSelective(appShareholderDetail);
}
} catch (ParseException e) {
e.printStackTrace();
log.error("股东导入失败:【{}】", e);
}
}
}
......
package com.github.wxiaoqi.security.admin.rest.admin;
import com.github.wxiaoqi.security.admin.biz.AppShareholderDetailBiz;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailDTO;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailFindDTO;
import com.github.wxiaoqi.security.admin.vo.AppShareholderDetailVo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.util.excel.ExcelImport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
......@@ -53,23 +54,35 @@ public class AppShareholderDetailController {
} catch (Exception e) {
throw new BaseException(e);
}
}
}
/**
* @param appShareholderDetailFindDTO
* @return
*/
@GetMapping("/page")
public ObjectRestResponse<PageDataVO<AppShareholderDetailVo>> findWithPage(@RequestBody AppShareholderDetailFindDTO appShareholderDetailFindDTO) {
PageDataVO<AppShareholderDetailVo> dataVO = appShareholderDetailBiz.findWithPage(appShareholderDetailFindDTO);
return ObjectRestResponse.succ(dataVO);
}
/**
* 新增或编辑身份信息
*
* @return
*/
@PostMapping("/addUserPostion")
public ObjectRestResponse<Void> addUserPostion(@RequestBody AppShareholderDetailDTO appShareholderDetailDTO, HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer updUserId = Integer.valueOf(infoFromToken.getId());
return appShareholderDetailBiz.add(appShareholderDetailDTO, updUserId);
} catch (Exception e) {
log.error("新增失败【{}】", e);
throw new BaseException("新增失败");
}
}
}
package com.xxfc.platform.vehicle.feign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.GoodDataVO;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
......@@ -180,6 +179,11 @@ public interface VehicleFeign {
@RequestMapping(value = "/vehicleInfo/bookRecord/update", method = RequestMethod.POST)
public ObjectRestResponse update(@RequestBody BookRecordUpdateLog bookRecordUpdateLog);
@GetMapping(value ="/branchCompany/getCompanyIds")
RestResponse<List<Integer>> getCompanyIds(@RequestParam(value = "dataZone")String dataZone ,@RequestParam(value = "dataCompany")String dataCompany);
@GetMapping(value = "/bookRecord/get")
public ObjectRestResponse<List<BookRecordUpdateLog>> get(@RequestParam(value = "bookRecordId")Long bookRecordId);
/**
* 车型日历价格
......@@ -212,4 +216,10 @@ public interface VehicleFeign {
@RequestMapping(value = "/vehicleInfo/bookRecord/order-update", method = RequestMethod.POST)
public RestResponse updateOrderBookRecord(@RequestBody BookVehicleVO bookVehicleVo);
@GetMapping("/branchCompany/company_info")
Map<Integer, String> findCompanyMap();
@RequestMapping(value ="/branchCompany/{id}",method = RequestMethod.GET)
RestResponse<BranchCompany> get(@PathVariable Integer id);
}
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