Commit c0d7284f authored by libin's avatar libin

Merge branch 'saff_update_feature' into dev

# Conflicts:
#	ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/admin/AppUserPositionController.java
#	xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
parents c5233d1a e93dd296
package com.github.wxiaoqi.security.admin.dto;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
@Data
public class AppShareholderDetailChangeRecordDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
private Integer id;
/**
* 股东手机号
*/
private String phone;
/**
* 股东名称
*/
private String userName;
/**
* 公司ID
*/
private Integer CompanyId;
/**
* 公司名称
*/
private String CompanyName;
/**
* 操作人名称
*/
private Integer operatorId;
/**
* 入股时间
*/
private Timestamp relTime;
/**
* 股东id
*/
private Integer userId;
/**
* 操作指令
*/
private Integer changeState;
/**
* 0:入股 1:退股
*/
private Integer isQuit;
}
...@@ -55,8 +55,18 @@ public class AppShareholderDetailDTO { ...@@ -55,8 +55,18 @@ public class AppShareholderDetailDTO {
@ApiModelProperty("公司集合") @ApiModelProperty("公司集合")
private Map<Integer, String> companyMap; private Map<Integer, String> companyMap;
@ApiModelProperty("公司数组")
private String[] companyList;
@ApiModelProperty("股东身份ID") @ApiModelProperty("股东身份ID")
private Integer positionId; private Integer positionId;
/**
* 操作指令
* 1:信息修改
* 2:股权变动
*/
private Integer changeState;
} }
...@@ -19,7 +19,7 @@ public class AppUserPositionChangeRecordDTO implements Serializable { ...@@ -19,7 +19,7 @@ public class AppUserPositionChangeRecordDTO implements Serializable {
private Integer id; private Integer id;
/** /**
* 用户id * 用户手机号
*/ */
private String phone; private String phone;
...@@ -109,4 +109,9 @@ public class AppUserPositionChangeRecordDTO implements Serializable { ...@@ -109,4 +109,9 @@ public class AppUserPositionChangeRecordDTO implements Serializable {
* 员工职位、所属公司、离职、入职等的实际上任时间 * 员工职位、所属公司、离职、入职等的实际上任时间
*/ */
private Timestamp relTime; private Timestamp relTime;
/**
* 用户id
*/
private Integer userId;
} }
...@@ -3,15 +3,15 @@ package com.github.wxiaoqi.security.admin.entity; ...@@ -3,15 +3,15 @@ package com.github.wxiaoqi.security.admin.entity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column; import javax.persistence.*;
import javax.persistence.GeneratedValue; import java.io.Serializable;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date; import java.util.Date;
@Table(name = "app_shareholder_detail") @Table(name = "app_shareholder_detail")
@Data @Data
public class AppShareholderDetail { public class AppShareholderDetail implements Serializable {
private static final long serialVersionUID = 1L;
@Id @Id
@GeneratedValue(generator = "JDBC")//此处加上注解 @GeneratedValue(generator = "JDBC")//此处加上注解
private Integer id; private Integer id;
...@@ -55,4 +55,7 @@ public class AppShareholderDetail { ...@@ -55,4 +55,7 @@ public class AppShareholderDetail {
@Column(name = "position_id") @Column(name = "position_id")
private Integer positionId; private Integer positionId;
@Transient
private String companyIdArray;
} }
package com.github.wxiaoqi.security.admin.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
@Data
@Table(name = "app_shareholder_detail_change_record")
public class AppShareholderDetailChangeRecord implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")//此处加上注解
private Integer id;
@ApiModelProperty("用户id")
@Column(name = "user_id")
private Integer userId;
@ApiModelProperty("公司名称")
@Column(name = "company_name")
private String companyName;
@ApiModelProperty("公司ID")
@Column(name = "company_id")
private Integer companyId;
@ApiModelProperty("用户手机号")
@Column(name = "phone")
private String phone;
@ApiModelProperty("股东名称")
@Column(name = "name")
private String name;
@ApiModelProperty("持股状态 0:持股中 1:已退股")
@Column(name = "is_quit")
private Integer isQuit;
@ApiModelProperty("创建时间")
@Column(name = "crt_time")
private Long crtTime;
@ApiModelProperty("实际入股时间时间")
@Column(name = "rel_time")
private Date relTime;
@ApiModelProperty("操作人")
@Column(name = "operator_id")
private Integer operatorId;
}
...@@ -24,6 +24,10 @@ public class AppUserPositionChangeRecord implements Serializable { ...@@ -24,6 +24,10 @@ public class AppUserPositionChangeRecord implements Serializable {
private Integer id; private Integer id;
@ApiModelProperty("用户id") @ApiModelProperty("用户id")
@Column(name = "user_id")
private Integer userId;
@ApiModelProperty("员工手机号")
@Column(name = "phone") @Column(name = "phone")
private String phone; private String phone;
......
...@@ -5,6 +5,7 @@ import lombok.Data; ...@@ -5,6 +5,7 @@ import lombok.Data;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
@Data @Data
...@@ -49,4 +50,9 @@ public class AppShareholderDetailVo { ...@@ -49,4 +50,9 @@ public class AppShareholderDetailVo {
@ApiModelProperty("股东身份名称") @ApiModelProperty("股东身份名称")
private String positionName; private String positionName;
@ApiModelProperty("股东身份名称")
private List<String> companyList;
private String companyIdArray;
} }
...@@ -9,15 +9,16 @@ import com.github.wxiaoqi.security.admin.entity.AppUserPosition; ...@@ -9,15 +9,16 @@ import com.github.wxiaoqi.security.admin.entity.AppUserPosition;
import com.github.wxiaoqi.security.admin.mapper.AppShareholderDetailMapper; import com.github.wxiaoqi.security.admin.mapper.AppShareholderDetailMapper;
import com.github.wxiaoqi.security.admin.vo.AppShareholderDetailVo; import com.github.wxiaoqi.security.admin.vo.AppShareholderDetailVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; 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.entity.BranchCompany;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
...@@ -29,10 +30,9 @@ import tk.mybatis.mapper.entity.Example; ...@@ -29,10 +30,9 @@ import tk.mybatis.mapper.entity.Example;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Slf4j @Slf4j
@Transactional @Transactional
@Service("appShareholderDetailBiz") @Service("appShareholderDetailBiz")
...@@ -50,13 +50,21 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -50,13 +50,21 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
@Autowired @Autowired
private AppUserPositionBiz appUserPositionBiz; private AppUserPositionBiz appUserPositionBiz;
@Autowired
private AppShareholderDetailChangeRecordBiz appShareholderDetailChangeRecordBiz;
@Autowired @Autowired
private ThreadPoolTaskExecutor threadPoolTaskExecutor; private ThreadPoolTaskExecutor threadPoolTaskExecutor;
public static int HEADQUARTERS_SHAREHOLDER = 1; public static int HEADQUARTERS_SHAREHOLDER = 1;
public static int BRANCH_HEADQUARTERS_SHAREHOLDER = 2; public static int BRANCH_HEADQUARTERS_SHAREHOLDER = 2;
public static int SHAREHOLDERDE_IS_TRUE = 0;
public static int SHAREHOLDERDE_IS_FALSE = 1;
private final int BORDER_NUM = 250; private final int BORDER_NUM = 250;
...@@ -75,21 +83,24 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -75,21 +83,24 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
public ObjectRestResponse add(AppShareholderDetailDTO appShareholderDetailDTO, Integer updUserId) { public ObjectRestResponse add(AppShareholderDetailDTO appShareholderDetailDTO, Integer updUserId) {
if (appShareholderDetailDTO == null || StringUtils.isBlank(appShareholderDetailDTO.getName()) || StringUtils.isBlank(appShareholderDetailDTO.getPhone()) || if (appShareholderDetailDTO == null || StringUtils.isBlank(appShareholderDetailDTO.getName()) || StringUtils.isBlank(appShareholderDetailDTO.getPhone()) ||
appShareholderDetailDTO.getCompanyMap().size() == 0) { appShareholderDetailDTO.getCompanyList() == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "参数不能为空"); return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "参数不能为空");
} }
AppShareholderDetail appShareholderDetail = new AppShareholderDetail(); AppShareholderDetail appShareholderDetail = new AppShareholderDetail();
Map<Integer, String> companyMap = appShareholderDetailDTO.getCompanyMap(); String[] companyArray = appShareholderDetailDTO.getCompanyList();
for (Integer companyId : companyMap.keySet()) { for (String company : companyArray) {
String companyName = companyMap.get(companyId); Integer companyId = Integer.valueOf(company);
if (!(companyId != null && companyId > 0 && StringUtils.isNotBlank(companyName))) if (!(companyId != null && companyId > 0))
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "分公司不存在"); return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "分公司不存在");
BranchCompany branchCompany = vehicleFeign.companyId(companyName); RestResponse<BranchCompany> branchCompany = vehicleFeign.get(companyId);
if (branchCompany == null) {
if (branchCompany.getData() == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "分公司不存在"); 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; Integer userId = 0;
//登陆表查询用户手机号 //登陆表查询用户手机号
...@@ -99,26 +110,84 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -99,26 +110,84 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
//关联查询detail表 获取身份 //关联查询detail表 获取身份
AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userId); AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userId);
if (!(appUserDetail.getPositionId().equals(1))) { if (!(appUserDetail.getPositionId().equals(1))) {
if (positionId.equals(1)) {
detailBiz.updateUserPositionByUserId(userId, positionId); detailBiz.updateUserPositionByUserId(userId, positionId);
} }
} }
//判断股东表是否有数据,有则不插入
Example example = new Example(AppShareholderDetail.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId", userId);
criteria.andEqualTo("companyId", companyId);
if (appShareholderDetailDTO.getPhone() != null) {
criteria.andEqualTo("phone", appShareholderDetailDTO.getPhone());
} }
List<AppShareholderDetail> listappShareholderDetai = selectByExample(example);
if (listappShareholderDetai.size() == 0) {
Integer id = appShareholderDetailDTO.getId() == null ? 0 : appShareholderDetailDTO.getId(); Integer id = appShareholderDetailDTO.getId() == null ? 0 : appShareholderDetailDTO.getId();
BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail); BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail);
appShareholderDetail.setPositionId(positionId); appShareholderDetail.setPositionId(positionId);
appShareholderDetailDTO.setUserId(userId); appShareholderDetailDTO.setUserId(userId);
//插入 // insertSelective(appShareholderDetail);
if (id == null || id == 0) { addUserFindId(appShareholderDetail);
//插入记录表
appShareholderDetailChangeRecordBiz.addAppShareholderDetailChangeRecord(appShareholderDetail, updUserId, SHAREHOLDERDE_IS_TRUE);
}
}
return ObjectRestResponse.succ();
}
//分开事务,先新增股东表 ,获取自增长ID ,存入股东变更记录表
public AppShareholderDetail addUserFindId(AppShareholderDetail appShareholderDetail) {
AppShareholderDetail appShareholderDetailNew = new AppShareholderDetail();
insertSelective(appShareholderDetail); insertSelective(appShareholderDetail);
//編輯 BeanUtils.copyProperties(appShareholderDetail, appShareholderDetailNew);
} else { return appShareholderDetailNew;
}
/**
* 编辑股东信息
*/
public ObjectRestResponse updSharehoder(AppShareholderDetailDTO appShareholderDetailDTO, Integer updUserId) {
if (appShareholderDetailDTO.getChangeState() == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "请输入操作指令");
}
if (appShareholderDetailDTO.getId() == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "请传入修改股东ID");
}
AppShareholderDetail appShareholderDetail = new AppShareholderDetail();
BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail);
//信息修改
if (appShareholderDetailDTO.getChangeState().equals(1)) {
updateSelectiveById(appShareholderDetail); updateSelectiveById(appShareholderDetail);
// updateById(appShareholderDetail);
} else if (appShareholderDetailDTO.getChangeState().equals(2)) {
if (appShareholderDetailDTO.getCompanyList() == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "请传入需要退股的公司");
} }
if (appShareholderDetailDTO.getRelTime() == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "请输入退股时间");
}
if (appShareholderDetailDTO.getPhone() == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "请输入股东号码");
}
for (String company : appShareholderDetailDTO.getCompanyList()) {
Integer companyId = Integer.valueOf(company);
appShareholderDetail.setIsQuit(SHAREHOLDERDE_IS_FALSE);
updateSelectiveById(appShareholderDetail);
AppShareholderDetail updAppShareholderDetail = selectById(appShareholderDetail);
RestResponse<BranchCompany> branchCompany = vehicleFeign.get(companyId);
String companyName = branchCompany.getData().getName();
updAppShareholderDetail.setCompanyName(companyName);
//插入记录表
appShareholderDetailChangeRecordBiz.addAppShareholderDetailChangeRecord(updAppShareholderDetail, updUserId, SHAREHOLDERDE_IS_FALSE);
} }
return ObjectRestResponse.succ();
} }
return ObjectRestResponse.succ();
}
/** /**
* 分页查询 * 分页查询
...@@ -126,22 +195,24 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -126,22 +195,24 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
public PageDataVO<AppShareholderDetailVo> findWithPage(AppShareholderDetailFindDTO appShareholderDetailFindDTO) { public PageDataVO<AppShareholderDetailVo> findWithPage(AppShareholderDetailFindDTO appShareholderDetailFindDTO) {
PageDataVO<AppShareholderDetailVo> dataVO = new PageDataVO<>(); PageDataVO<AppShareholderDetailVo> dataVO = new PageDataVO<>();
Example example = new Example(AppShareholderDetail.class); String name = null;
Example.Criteria criteria = example.createCriteria(); String phone = null;
Integer positionId = null;
Integer companyID = null;
if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getName())) { if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getName())) {
example.createCriteria().andEqualTo("name", String.format("%%%s%%", appShareholderDetailFindDTO.getName().trim())); name = String.format("%%%s%%", appShareholderDetailFindDTO.getName().trim());
} }
if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getPhone())) { if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getPhone())) {
example.createCriteria().andEqualTo("phone", appShareholderDetailFindDTO.getPhone()); phone = appShareholderDetailFindDTO.getPhone();
} }
if (Objects.nonNull(appShareholderDetailFindDTO.getCompanyId())) { if (Objects.nonNull(appShareholderDetailFindDTO.getCompanyId())) {
example.createCriteria().andEqualTo("companyId", appShareholderDetailFindDTO.getCompanyId()); companyID = appShareholderDetailFindDTO.getCompanyId();
} }
if (Objects.nonNull(appShareholderDetailFindDTO.getPositionId())) { if (Objects.nonNull(appShareholderDetailFindDTO.getPositionId())) {
example.createCriteria().andEqualTo("positionId", appShareholderDetailFindDTO.getPositionId()); positionId = appShareholderDetailFindDTO.getPositionId();
} }
example.setOrderByClause("crt_time desc");
PageDataVO<AppShareholderDetail> pageDataVO = PageDataVO.pageInfo(appShareholderDetailFindDTO.getPage(), appShareholderDetailFindDTO.getLimit(), () -> mapper.selectByExample(example)); PageDataVO<AppShareholderDetail> pageDataVO = findPage(appShareholderDetailFindDTO, positionId, companyID, phone, name);
List<AppShareholderDetail> data = pageDataVO.getData(); List<AppShareholderDetail> data = pageDataVO.getData();
if (CollectionUtils.isEmpty(data)) { if (CollectionUtils.isEmpty(data)) {
dataVO.setData(Collections.EMPTY_LIST); dataVO.setData(Collections.EMPTY_LIST);
...@@ -153,13 +224,27 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -153,13 +224,27 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
List<Integer> postionIds = data.stream().map(AppShareholderDetail::getPositionId).collect(Collectors.toList()); List<Integer> postionIds = data.stream().map(AppShareholderDetail::getPositionId).collect(Collectors.toList());
Map<Integer, AppUserPosition> postionMap = appUserPositionBiz.findPostionIdAndPostionMapByIds(postionIds); Map<Integer, AppUserPosition> postionMap = appUserPositionBiz.findPostionIdAndPostionMapByIds(postionIds);
List<AppShareholderDetailVo> AppShareholderDetailVos = new ArrayList<>(); List<AppShareholderDetailVo> AppShareholderDetailVos = new ArrayList<>();
// List<AppShareholderDetailVo> AppShareholderDetailMerge = new ArrayList<>();
AppShareholderDetailVo appShareholderDetailVo; AppShareholderDetailVo appShareholderDetailVo;
for (AppShareholderDetail appShareholderDetail : data) { for (AppShareholderDetail appShareholderDetail : data) {
appShareholderDetailVo = new AppShareholderDetailVo(); appShareholderDetailVo = new AppShareholderDetailVo();
BeanUtils.copyProperties(appShareholderDetail, appShareholderDetailVo);
String postionName = postionMap == null ? "" : postionMap.get(appShareholderDetail.getPositionId()) == null ? "" : postionMap.get(appShareholderDetail.getPositionId()).getName(); String postionName = postionMap == null ? "" : postionMap.get(appShareholderDetail.getPositionId()) == null ? "" : postionMap.get(appShareholderDetail.getPositionId()).getName();
appShareholderDetailVo.setPositionName(postionName); appShareholderDetailVo.setPositionName(postionName);
AppShareholderDetailVos.add(appShareholderDetailVo); 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.setPageSize(pageDataVO.getPageSize());
dataVO.setPageNum(pageDataVO.getPageNum()); dataVO.setPageNum(pageDataVO.getPageNum());
dataVO.setData(AppShareholderDetailVos); dataVO.setData(AppShareholderDetailVos);
...@@ -168,22 +253,28 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -168,22 +253,28 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
return dataVO; return dataVO;
} }
private PageDataVO<AppShareholderDetail> findPage(AppShareholderDetailFindDTO appShareholderDetailFindDTO, Integer finalPositionId, Integer finalCompanyID, String finalPhone, String finalName) {
return PageDataVO.pageInfo(appShareholderDetailFindDTO.getPage(), appShareholderDetailFindDTO.getLimit(), () -> {
mapper.findPage(finalName, finalPhone, finalPositionId, finalCompanyID);
});
}
/** /**
* 批量导入 * 批量导入
*/ */
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public int importShareholder(List<String[]> shareholderData, Integer userId, String userName) { public int importShareholder(List<String[]> shareholderData, Integer operatorId) {
List<AppShareholderDetail> appShareholderDetail = new ArrayList<>(); List<AppShareholderDetail> appShareholderDetail = new ArrayList<>();
Integer discount = 0; int size = wrapperData(shareholderData, operatorId);
AtomicInteger counter = new AtomicInteger(0);
int threadNums = shareholderData.size() / BORDER_NUM == 0 ? 1 : shareholderData.size() / BORDER_NUM; /*int threadNums = shareholderData.size() / BORDER_NUM == 0 ? 1 : shareholderData.size() / BORDER_NUM;
CountDownLatch latch = new CountDownLatch(threadNums); CountDownLatch latch = new CountDownLatch(threadNums);
for (int i = 0; i < threadNums; i++) { for (int i = 0; i < threadNums; i++) {
int startIndex = i * BORDER_NUM; int startIndex = i * BORDER_NUM;
int endIndex = i == (threadNums - 1) ? shareholderData.size() : (i + 1) * BORDER_NUM; int endIndex = i == (threadNums - 1) ? shareholderData.size() : (i + 1) * BORDER_NUM;
List<String[]> subResultDate = shareholderData.subList(startIndex, endIndex); List<String[]> subResultDate = shareholderData.subList(startIndex, endIndex);
threadPoolTaskExecutor.execute(() -> { threadPoolTaskExecutor.execute(() -> {
wrapperData(subResultDate, discount, counter);
latch.countDown(); latch.countDown();
}); });
try { try {
...@@ -191,29 +282,31 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -191,29 +282,31 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new BaseException("导入数据失败"); throw new BaseException("导入数据失败");
} }
}*/
} return size;
return appShareholderDetail.size();
} }
/** /**
* @param subResultDate * @param subResultDate
* @param discount
* @param counter
*/ */
private void wrapperData(List<String[]> subResultDate, Integer discount, AtomicInteger counter) { private int wrapperData(List<String[]> subResultDate, Integer operatorId) {
int size = subResultDate.get(0).length;
int total = 0;
subResultDate.remove(0);
for (String[] data : subResultDate) { for (String[] data : subResultDate) {
data = Arrays.copyOf(data, size);
String name = data[0]; String name = data[0];
String phone = data[1]; String phone = data[1];
String companyName = data[2]; String companyName = data[2];
String Time = data[3]; String time = data[3];
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
if (StringUtils.isNotBlank(name) && StringUtils.isNotBlank(phone) && StringUtils.isNotBlank(companyName)) {
try { try {
Date relTime = formatter.parse(Time); total++;
Date relTime = StringUtils.isNoneBlank(time) ? formatter.parse(time) : null;
BranchCompany branchCompany = vehicleFeign.companyId(companyName); BranchCompany branchCompany = vehicleFeign.companyId(companyName);
if (branchCompany != null) { if (branchCompany != null) {
if (branchCompany.getId() != null) {
Integer positionId = branchCompany.getId().equals(1) ? HEADQUARTERS_SHAREHOLDER : BRANCH_HEADQUARTERS_SHAREHOLDER; Integer positionId = branchCompany.getId().equals(1) ? HEADQUARTERS_SHAREHOLDER : BRANCH_HEADQUARTERS_SHAREHOLDER;
AppShareholderDetailDTO appShareholderDetailDTO = new AppShareholderDetailDTO(); AppShareholderDetailDTO appShareholderDetailDTO = new AppShareholderDetailDTO();
//用户表更改其身份 //用户表更改其身份
...@@ -226,11 +319,9 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -226,11 +319,9 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
//关联查询detail表 获取身份 //关联查询detail表 获取身份
AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userId); AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userId);
if (!(appUserDetail.getPositionId().equals(1))) { if (!(appUserDetail.getPositionId().equals(1))) {
if (positionId.equals(1)) {
detailBiz.updateUserPositionByUserId(userId, positionId); detailBiz.updateUserPositionByUserId(userId, positionId);
} }
} }
}
appShareholderDetailDTO.setUserId(userId); appShareholderDetailDTO.setUserId(userId);
appShareholderDetailDTO.setPositionId(positionId); appShareholderDetailDTO.setPositionId(positionId);
appShareholderDetailDTO.setCompanyId(branchCompany.getId()); appShareholderDetailDTO.setCompanyId(branchCompany.getId());
...@@ -242,13 +333,31 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -242,13 +333,31 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
appShareholderDetailDTO.setCrtTime(System.currentTimeMillis()); appShareholderDetailDTO.setCrtTime(System.currentTimeMillis());
AppShareholderDetail appShareholderDetail = new AppShareholderDetail(); AppShareholderDetail appShareholderDetail = new AppShareholderDetail();
BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail); BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail);
mapper.insertSelective(appShareholderDetail); //判断股东表是否有数据,有则不插入
Example example = new Example(AppShareholderDetail.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId", userId);
criteria.andEqualTo("companyId", branchCompany.getId());
if (appShareholderDetailDTO.getPhone() != null) {
criteria.andEqualTo("phone", appShareholderDetailDTO.getPhone());
}
List<AppShareholderDetail> listappShareholderDetai = selectByExample(example);
if (listappShareholderDetai.size() == 0) {
Integer id = appShareholderDetailDTO.getId() == null ? 0 : appShareholderDetailDTO.getId();
BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail);
appShareholderDetail.setPositionId(positionId);
appShareholderDetailDTO.setUserId(userId);
addUserFindId(appShareholderDetail);
//插入记录表
appShareholderDetailChangeRecordBiz.addAppShareholderDetailChangeRecord(appShareholderDetail, operatorId, SHAREHOLDERDE_IS_TRUE);
}
}
} }
} catch (ParseException e) { } catch (ParseException e) {
e.printStackTrace(); log.error("股东导入失败:【{}】", e);
}
} }
} }
return total;
} }
} }
package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailChangeRecordDTO;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailDTO;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetail;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetailChangeRecord;
import com.github.wxiaoqi.security.admin.mapper.AppShareholderDetailChangeRecordMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.apache.commons.beanutils.BeanUtils;
import tk.mybatis.mapper.entity.Example;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Transactional
@Service("appShareholderDetailChangeRecordBiz")
public class AppShareholderDetailChangeRecordBiz extends BaseBiz<AppShareholderDetailChangeRecordMapper, AppShareholderDetailChangeRecord> {
/**
* 股东变变更记录插入
*/
public void addAppShareholderDetailChangeRecord(AppShareholderDetail appShareholderDetail, Integer operatorId, Integer changeState) {
AppShareholderDetailChangeRecord appShareholderDetailChangeRecord = new AppShareholderDetailChangeRecord();
appShareholderDetailChangeRecord.setRelTime(appShareholderDetail.getRelTime());
appShareholderDetailChangeRecord.setName(appShareholderDetail.getName());
appShareholderDetailChangeRecord.setPhone(appShareholderDetail.getPhone());
appShareholderDetailChangeRecord.setCompanyId(appShareholderDetail.getCompanyId());
appShareholderDetailChangeRecord.setCompanyName(appShareholderDetail.getCompanyName());
appShareholderDetailChangeRecord.setOperatorId(operatorId);
appShareholderDetailChangeRecord.setIsQuit(changeState);
appShareholderDetailChangeRecord.setUserId(appShareholderDetail.getId());
appShareholderDetailChangeRecord.setCrtTime(System.currentTimeMillis());
mapper.insertSelective(appShareholderDetailChangeRecord);
}
/**
* 查询员工信息变更记录表
*/
public List<AppShareholderDetailChangeRecord> findShareholderChangeRecord(AppShareholderDetail appShareholderDetail) {
Example example = new Example(AppShareholderDetailChangeRecord.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId", appShareholderDetail.getId());
if (appShareholderDetail.getPhone() != null) {
criteria.andEqualTo("phone", appShareholderDetail.getPhone());
}
List<AppShareholderDetailChangeRecord > list = mapper.selectByExample(example);
return list;
}
}
package com.github.wxiaoqi.security.admin.biz; package com.github.wxiaoqi.security.admin.biz;
import com.alibaba.druid.sql.visitor.functions.If;
import com.github.wxiaoqi.security.admin.dto.AppUserPositionChangeRecordDTO; import com.github.wxiaoqi.security.admin.dto.AppUserPositionChangeRecordDTO;
import com.github.wxiaoqi.security.admin.dto.AppUserPositionTempDTO; import com.github.wxiaoqi.security.admin.dto.AppUserPositionTempDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserPosition;
import com.github.wxiaoqi.security.admin.entity.AppUserPositionChangeRecord; import com.github.wxiaoqi.security.admin.entity.AppUserPositionChangeRecord;
import com.github.wxiaoqi.security.admin.entity.AppUserPositionTemp; import com.github.wxiaoqi.security.admin.entity.AppUserPositionTemp;
import com.github.wxiaoqi.security.admin.mapper.AppUserPositionChangeRecordMapper; import com.github.wxiaoqi.security.admin.mapper.AppUserPositionChangeRecordMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import lombok.NonNull;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.select.Evaluator;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -21,7 +15,6 @@ import tk.mybatis.mapper.entity.Example; ...@@ -21,7 +15,6 @@ import tk.mybatis.mapper.entity.Example;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
@Transactional @Transactional
...@@ -77,6 +70,7 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang ...@@ -77,6 +70,7 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
appUserPositionChangeRecord.setJobRemark(COMPANY_CHANGE); appUserPositionChangeRecord.setJobRemark(COMPANY_CHANGE);
} }
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
appUserPositionChangeRecord.setPhone(userPositionTemp.getPhone()); appUserPositionChangeRecord.setPhone(userPositionTemp.getPhone());
appUserPositionChangeRecord.setRelTime(relTime); appUserPositionChangeRecord.setRelTime(relTime);
appUserPositionChangeRecord.setUserName(userPositionTemp.getName()); appUserPositionChangeRecord.setUserName(userPositionTemp.getName());
...@@ -99,9 +93,30 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang ...@@ -99,9 +93,30 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis())); appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setJobRemark(USER_ADD_COMPANY); appUserPositionChangeRecord.setJobRemark(USER_ADD_COMPANY);
appUserPositionChangeRecord.setOperatorId(updUserId); appUserPositionChangeRecord.setOperatorId(updUserId);
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
mapper.insert(appUserPositionChangeRecord); mapper.insert(appUserPositionChangeRecord);
} }
/**
* 批量插入记录表
*
* @param userPositionTemp
* @param updUserId
*/
public void addJoinJobRecord(AppUserPositionTemp userPositionTemp, Integer updUserId) {
AppUserPositionChangeRecord appUserPositionChangeRecord = new AppUserPositionChangeRecord();
appUserPositionChangeRecord.setPhone(userPositionTemp.getPhone());
appUserPositionChangeRecord.setUserName(userPositionTemp.getName());
appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setRelTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setJobRemark(USER_ADD_COMPANY);
appUserPositionChangeRecord.setOperatorId(updUserId);
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
mapper.insert(appUserPositionChangeRecord);
}
/** /**
* 员工复职 * 员工复职
* *
...@@ -119,6 +134,7 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang ...@@ -119,6 +134,7 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis())); appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setJobRemark(USER_AND_ADD_COMPANY); appUserPositionChangeRecord.setJobRemark(USER_AND_ADD_COMPANY);
appUserPositionChangeRecord.setOperatorId(updUserId); appUserPositionChangeRecord.setOperatorId(updUserId);
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
mapper.insert(appUserPositionChangeRecord); mapper.insert(appUserPositionChangeRecord);
} }
...@@ -176,6 +192,9 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang ...@@ -176,6 +192,9 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
public List<AppUserPositionChangeRecordDTO> findPositionChangeRecord(AppUserPositionTemp userPositionTemp) { public List<AppUserPositionChangeRecordDTO> findPositionChangeRecord(AppUserPositionTemp userPositionTemp) {
Example example = new Example(AppUserPositionChangeRecord.class); Example example = new Example(AppUserPositionChangeRecord.class);
example.createCriteria().andEqualTo("phone", userPositionTemp.getPhone()); example.createCriteria().andEqualTo("phone", userPositionTemp.getPhone());
if (userPositionTemp.getId() != null) {
example.createCriteria().andEqualTo("userId", userPositionTemp.getId());
}
List<AppUserPositionChangeRecord> list = selectByExample(example); List<AppUserPositionChangeRecord> list = selectByExample(example);
List<AppUserPositionChangeRecordDTO> listAppUserPositionChangeRecordDTO = new ArrayList<>(); List<AppUserPositionChangeRecordDTO> listAppUserPositionChangeRecordDTO = new ArrayList<>();
list.stream().forEach(x -> { list.stream().forEach(x -> {
......
...@@ -105,8 +105,10 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -105,8 +105,10 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
userPositionTemp.setCompanyName(companyName); userPositionTemp.setCompanyName(companyName);
//编辑 //编辑
if (id == null || id == 0) { if (id == null || id == 0) {
insertSelective(userPositionTemp); int ids = addUserFindId(userPositionTemp).getId();
appUserPositionTempDTO.setId(ids);
//记录表插入 //记录表插入
// appUserPositionTempDTO.setId();
appUserPositionChangeRecordBiz.addJoinJobRecord(appUserPositionTempDTO, updUserId); appUserPositionChangeRecordBiz.addJoinJobRecord(appUserPositionTempDTO, updUserId);
} else { } else {
updateSelectiveById(userPositionTemp); updateSelectiveById(userPositionTemp);
...@@ -118,6 +120,15 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -118,6 +120,15 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
//新增员工表时,获取自增长主键ID,插入变动记录表对应user_id字段
public AppUserPositionTemp addUserFindId(AppUserPositionTemp userPositionTemp) {
AppUserPositionTemp newAppUserPositionTemp = new AppUserPositionTemp();
insertSelective(userPositionTemp);
BeanUtils.copyProperties(userPositionTemp, newAppUserPositionTemp);
return newAppUserPositionTemp;
}
public void updateAppuserPostionStatusById(Integer id, int status) { public void updateAppuserPostionStatusById(Integer id, int status) {
AppUserPositionTemp appUserPositionTemp = new AppUserPositionTemp(); AppUserPositionTemp appUserPositionTemp = new AppUserPositionTemp();
appUserPositionTemp.setId(id); appUserPositionTemp.setId(id);
...@@ -185,7 +196,7 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -185,7 +196,7 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
return dataVO; return dataVO;
} }
public Map<String, Object> importUserPostion(List<String[]> userPostionData) { public Map<String, Object> importUserPostion(List<String[]> userPostionData, Integer operatorId) {
Map<String, Object> result = new HashMap<>(2); Map<String, Object> result = new HashMap<>(2);
List<Map<String, Object>> errorResult = Lists.newArrayList(); List<Map<String, Object>> errorResult = Lists.newArrayList();
Map<String, Object> errorResultMap; Map<String, Object> errorResultMap;
...@@ -266,7 +277,12 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -266,7 +277,12 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
appUserPositionTemp.setId(id); appUserPositionTemp.setId(id);
updateSelectiveById(appUserPositionTemp); updateSelectiveById(appUserPositionTemp);
} else { } else {
insertSelective(appUserPositionTemp); // insertSelective(appUserPositionTemp);
AppUserPositionTemp appUserPositionTempNew = new AppUserPositionTemp();
BeanUtils.copyProperties(appUserPositionTemp, appUserPositionTempNew);
appUserPositionTempNew = addUserFindId(appUserPositionTemp);
//记录表插入
appUserPositionChangeRecordBiz.addJoinJobRecord(appUserPositionTempNew, operatorId);
} }
} catch (BaseException ex) { } catch (BaseException ex) {
...@@ -427,7 +443,7 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -427,7 +443,7 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
//身份变更 //身份变更
if (StaffChangeStatusEnum.IDENTITY_CHANE.getCode() == changeStatus) { if (StaffChangeStatusEnum.IDENTITY_CHANE.getCode() == changeStatus) {
//不是离职状态下 //不是离职状态下
if(Objects.nonNull(userPositionTemp.getIsQuit()) && userPositionTemp.getIsQuit()!=1){ if (Objects.nonNull(userPositionTemp.getIsQuit()) && userPositionTemp.getIsQuit() != 1) {
postionId = Objects.nonNull(postionId) ? postionId : appUserPositionTempDTO.getPositionId(); postionId = Objects.nonNull(postionId) ? postionId : appUserPositionTempDTO.getPositionId();
//更改为股东身份 //更改为股东身份
loginBiz.updateUserPosition(appUserDetail.getUserid(), postionId); loginBiz.updateUserPosition(appUserDetail.getUserid(), postionId);
......
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetailChangeRecord;
import tk.mybatis.mapper.common.Mapper;
public interface AppShareholderDetailChangeRecordMapper extends Mapper<AppShareholderDetailChangeRecord> {
}
...@@ -3,6 +3,9 @@ package com.github.wxiaoqi.security.admin.mapper; ...@@ -3,6 +3,9 @@ package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetail; import com.github.wxiaoqi.security.admin.entity.AppShareholderDetail;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* @author zuoyihang * @author zuoyihang
* @version 1.0 * @version 1.0
...@@ -13,4 +16,11 @@ public interface AppShareholderDetailMapper extends Mapper<AppShareholderDetail> ...@@ -13,4 +16,11 @@ public interface AppShareholderDetailMapper extends Mapper<AppShareholderDetail>
Integer selectShareHolderByUserIdOrPhone(@Param("userId") Integer userId, Integer selectShareHolderByUserIdOrPhone(@Param("userId") Integer userId,
@Param("phone") String phone); @Param("phone") String phone);
List<AppShareholderDetail> findPage(@Param("name") String name,
@Param("phone") String phone,
@Param("positionId") Integer positionId,
@Param("companyId") Integer companyId);
} }
package com.github.wxiaoqi.security.admin.rest.admin; package com.github.wxiaoqi.security.admin.rest.admin;
import com.github.wxiaoqi.security.admin.biz.AppShareholderDetailBiz; import com.github.wxiaoqi.security.admin.biz.AppShareholderDetailBiz;
import com.github.wxiaoqi.security.admin.biz.AppShareholderDetailChangeRecordBiz;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailDTO;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailFindDTO;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetail;
import com.github.wxiaoqi.security.admin.vo.AppShareholderDetailVo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil; import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo; import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; 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 com.xxfc.platform.vehicle.util.excel.ExcelImport;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
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.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -22,7 +25,7 @@ import java.util.List; ...@@ -22,7 +25,7 @@ import java.util.List;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/admin/appShareholder") @RequestMapping("/appShareholder")
@Api("后台*会员管理") @Api("后台*会员管理")
public class AppShareholderDetailController { public class AppShareholderDetailController {
@Autowired @Autowired
...@@ -34,18 +37,22 @@ public class AppShareholderDetailController { ...@@ -34,18 +37,22 @@ public class AppShareholderDetailController {
@Autowired @Autowired
private AppShareholderDetailBiz appShareholderDetailBiz; private AppShareholderDetailBiz appShareholderDetailBiz;
@Autowired
private AppShareholderDetailChangeRecordBiz appShareholderDetailChangeRecordBiz;
@ApiOperation("批量导入股东") @ApiOperation("批量导入股东")
@PostMapping("/appShareholder/export") @PostMapping("/export")
public ObjectRestResponse importAppShareholder(@RequestPart("file") MultipartFile appShareholderExcel, HttpServletRequest request) { public ObjectRestResponse importAppShareholder(@RequestPart("file") MultipartFile appShareholderExcel, HttpServletRequest request) {
try { try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)); IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer operatorId = Integer.valueOf(infoFromToken.getId());
List<String[]> appShareholderData = ExcelImport.getExcelData(appShareholderExcel); List<String[]> appShareholderData = ExcelImport.getExcelData(appShareholderExcel);
if (appShareholderData.size() < 1) { if (appShareholderData.size() < 1) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!"); return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
} }
appShareholderData.remove(0); // appShareholderData.remove(0);
try { try {
int effectSize = appShareholderDetailBiz.importShareholder(appShareholderData, Integer.valueOf(infoFromToken.getId()), infoFromToken.getUniqueName()); int effectSize = appShareholderDetailBiz.importShareholder(appShareholderData, operatorId);
return ObjectRestResponse.succ(effectSize); return ObjectRestResponse.succ(effectSize);
} catch (BaseException ex) { } catch (BaseException ex) {
return ObjectRestResponse.createDefaultFail(); return ObjectRestResponse.createDefaultFail();
...@@ -55,21 +62,58 @@ public class AppShareholderDetailController { ...@@ -55,21 +62,58 @@ public class AppShareholderDetailController {
} }
} }
/**
* @param appShareholderDetailFindDTO
* @return
*/
@PostMapping("/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 operatorId = Integer.valueOf(infoFromToken.getId());
return appShareholderDetailBiz.add(appShareholderDetailDTO, operatorId);
} catch (Exception e) {
log.error("新增失败【{}】", e);
throw new BaseException("新增失败");
}
}
/**
* 股东身份信息变更
*
* @return
*/
@PostMapping("/updUserPostion")
public ObjectRestResponse<Void> updUserPostion(@RequestBody AppShareholderDetailDTO appShareholderDetailDTO, HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer operatorId = Integer.valueOf(infoFromToken.getId());
return appShareholderDetailBiz.updSharehoder(appShareholderDetailDTO, operatorId);
} catch (Exception e) {
log.error("修改失败【{}】", e);
throw new BaseException("修改失败");
}
}
/**
* 查询股東信息变更记录表
*/
@GetMapping("/findShareholderChangeRecord")
public ObjectRestResponse findShareholderChangeRecord(AppShareholderDetail appShareholderDetail) {
return ObjectRestResponse.succ(appShareholderDetailChangeRecordBiz.findShareholderChangeRecord(appShareholderDetail));
}
} }
...@@ -114,7 +114,7 @@ public class AppUserPositionController { ...@@ -114,7 +114,7 @@ public class AppUserPositionController {
try { try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)); IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer operatorId = Integer.valueOf(infoFromToken.getId()); Integer operatorId = Integer.valueOf(infoFromToken.getId());
return ObjectRestResponse.succ(appUserPositionTempBiz.addUserPositionChangeRecord(appUserPositionTempDTO.getChangeStatus(), appUserPositionTempDTO, operatorId)) ; return ObjectRestResponse.succ(appUserPositionTempBiz.addUserPositionChangeRecord(appUserPositionTempDTO.getChangeStatus(), appUserPositionTempDTO, operatorId));
} catch (Exception e) { } catch (Exception e) {
log.error("修改失败【{}】", e); log.error("修改失败【{}】", e);
throw new BaseException("修改失败"); throw new BaseException("修改失败");
...@@ -153,37 +153,42 @@ public class AppUserPositionController { ...@@ -153,37 +153,42 @@ public class AppUserPositionController {
* @return * @return
*/ */
@PostMapping("/excel/import") @PostMapping("/excel/import")
public ObjectRestResponse<Map<String, Object>> importUserPostion(@RequestPart("file") MultipartFile userPostionExcel) { public ObjectRestResponse<Map<String, Object>> importUserPostion(@RequestPart("file") MultipartFile userPostionExcel, HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer operatorId = Integer.valueOf(infoFromToken.getId());
List<String[]> userPostionData = ExcelImport.getExcelData(userPostionExcel); List<String[]> userPostionData = ExcelImport.getExcelData(userPostionExcel);
if (userPostionData.size() < 2) { if (userPostionData.size() < 2) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!"); return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
} }
userPostionData.remove(0); userPostionData.remove(0);
Map<String, Object> result = appUserPositionTempBiz.importUserPostion(userPostionData); Map<String, Object> result = appUserPositionTempBiz.importUserPostion(userPostionData,operatorId);
return ObjectRestResponse.succ(result); return ObjectRestResponse.succ(result);
} catch (Exception e) {
throw new BaseException(e);
}
} }
/** /**
* 删除 * 删除
*
* @param id * @param id
* @return * @return
*/ */
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ObjectRestResponse<Void> deleteUserPostion(@PathVariable(value = "id") Integer id) { public ObjectRestResponse<Void> deleteUserPostion(@PathVariable(value = "id") Integer id){
appUserPositionTempBiz.updateAppuserPostionStatusById(id, 1); appUserPositionTempBiz.updateAppuserPostionStatusById(id,1);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
@PostMapping("/page") @PostMapping("/page")
public ObjectRestResponse<PageDataVO<AppUserPositionTempVo>> findWithPage(@RequestBody AppUserPositionTempFindDTO appUserPositionTempFindDTO) { public ObjectRestResponse<PageDataVO<AppUserPositionTempVo>> findWithPage(@RequestBody AppUserPositionTempFindDTO appUserPositionTempFindDTO){
PageDataVO<AppUserPositionTempVo> dataVO = appUserPositionTempBiz.findWithPage(appUserPositionTempFindDTO); PageDataVO<AppUserPositionTempVo> dataVO = appUserPositionTempBiz.findWithPage(appUserPositionTempFindDTO);
return ObjectRestResponse.succ(dataVO); return ObjectRestResponse.succ(dataVO);
} }
@GetMapping("/userid") @GetMapping("/userid")
public List<Integer> getUserIdByParentCompany(@RequestParam("parentCompanyId") List<Integer> parentCompanyId) { public List<Integer> getUserIdByParentCompany(@RequestParam("parentCompanyId") List<Integer> parentCompanyId){
return appUserPositionTempBiz.getUserIdByParentCompany(parentCompanyId); return appUserPositionTempBiz.getUserIdByParentCompany(parentCompanyId);
} }
......
<?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.github.wxiaoqi.security.admin.mapper.AppShareholderDetailChangeRecordMapper">
<resultMap id="appShareholderDetailMap" type="com.github.wxiaoqi.security.admin.entity.AppShareholderDetailChangeRecord">
<result property="id" column="id"/>
<result property="companyName" column="company_name"/>
<result property="userId" column="user_id"/>
<result property="phone" column="phone"/>
<result property="companyId" column="company_id"/>
<result property="name" column="name"/>
<result property="crtTime" column="crt_time"/>
<result property="isQuit" column="is_quit"/>
<result property="relTime" column="rel_time"/>
</resultMap>
</mapper>
...@@ -28,4 +28,58 @@ ...@@ -28,4 +28,58 @@
</otherwise> </otherwise>
</choose> </choose>
</select> </select>
<select id="findPage" resultType="com.github.wxiaoqi.security.admin.entity.AppShareholderDetail">
select * from (
select max(id) as id,max(name) as `name`,max(is_quit) as `isQuit`,max(position_id) as `positionId`,phone as
`phone`,group_concat(company_name) as `companyName`,group_concat(company_id) as `companyIdArray` from
app_shareholder_detail
where is_quit=0 and
position_id=1 group by phone
union ALL
select max(id) as id,max(name) as `name`,max(is_quit) as `isQuit`,max(position_id) as `positionId`,phone as
`phone`,group_concat(company_name) as `companyName` ,group_concat(company_id) as `companyIdArray` from
app_shareholder_detail
where is_quit=0 and
position_id=2 group by phone
union ALL
select max(id) as id,max(name) as `name`,max(is_quit) as `isQuit`,max(position_id) as `positionId`,phone as
`phone`,group_concat(company_name) as `companyName` ,group_concat(company_id) as `companyIdArray`from
app_shareholder_detail
where is_quit=1 and position_id
=1 group by phone
union all
select max(id) as id,max(name) as `name`,max(is_quit) as `isQuit`,max(position_id) as `positionId`,phone as
`phone`,group_concat(company_name) as `companyName` ,group_concat(company_id) as `companyIdArray`from
app_shareholder_detail
where is_quit=1 and position_id
=2 group by phone
) a
where 1=1
<if test="name !=null and name !='' ">
and a.name like CONCAT('%',#{name},'%')
</if>
<if test="positionId!=null">
and a.positionId=#{positionId}
</if>
<if test="phone!=null">
and a.phone=#{phone}
</if>
<if test="companyId!=null">
and a.companyId=#{companyId}
</if>
</select>
<resultMap id="detail" type="com.github.wxiaoqi.security.admin.entity.AppShareholderDetail">
<result property="id" column="id"/>
<result property="companyName" column="companyName"/>
<result property="userId" column="user_id"/>
<result property="phone" column="phone"/>
<result property="companyId" column="company_id"/>
<result property="name" column="name"/>
<result property="crtTime" column="crt_time"/>
<result property="isQuit" column="is_quit"/>
<result property="updTime" column="upd_time"/>
<result property="positionId" column="positionId"/>
</resultMap>
</mapper> </mapper>
\ No newline at end of file
package com.xxfc.platform.vehicle.feign; 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.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.GoodDataVO; import com.github.wxiaoqi.security.common.vo.GoodDataVO;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
...@@ -180,6 +179,11 @@ public interface VehicleFeign { ...@@ -180,6 +179,11 @@ public interface VehicleFeign {
@RequestMapping(value = "/vehicleInfo/bookRecord/update", method = RequestMethod.POST) @RequestMapping(value = "/vehicleInfo/bookRecord/update", method = RequestMethod.POST)
public ObjectRestResponse update(@RequestBody BookRecordUpdateLog bookRecordUpdateLog); 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);
/** /**
* 车型日历价格 * 车型日历价格
...@@ -195,15 +199,6 @@ public interface VehicleFeign { ...@@ -195,15 +199,6 @@ public interface VehicleFeign {
@RequestParam(value = "endDate") Long endDate, @RequestParam(value = "endDate") Long endDate,
@RequestParam(value = "vehicleModelId") Integer vehicleModelId, @RequestParam(value = "vehicleModelId") Integer vehicleModelId,
@RequestParam(value = "userId") Integer userId); @RequestParam(value = "userId") Integer userId);
@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);
@GetMapping("/branchCompany/company_info")
Map<Integer, String> findCompanyMap();
/** /**
* 订单修改订单时间,同时需要修改预定记录 * 订单修改订单时间,同时需要修改预定记录
* * @param bookVehicleVo * * @param bookVehicleVo
...@@ -212,4 +207,10 @@ public interface VehicleFeign { ...@@ -212,4 +207,10 @@ public interface VehicleFeign {
@RequestMapping(value = "/vehicleInfo/bookRecord/order-update", method = RequestMethod.POST) @RequestMapping(value = "/vehicleInfo/bookRecord/order-update", method = RequestMethod.POST)
public RestResponse updateOrderBookRecord(@RequestBody BookVehicleVO bookVehicleVo); 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