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 {
@ApiModelProperty("公司集合")
private Map<Integer, String> companyMap;
@ApiModelProperty("公司数组")
private String[] companyList;
@ApiModelProperty("股东身份ID")
private Integer positionId;
/**
* 操作指令
* 1:信息修改
* 2:股权变动
*/
private Integer changeState;
}
......@@ -19,7 +19,7 @@ public class AppUserPositionChangeRecordDTO implements Serializable {
private Integer id;
/**
* 用户id
* 用户手机号
*/
private String phone;
......@@ -109,4 +109,9 @@ public class AppUserPositionChangeRecordDTO implements Serializable {
* 员工职位、所属公司、离职、入职等的实际上任时间
*/
private Timestamp relTime;
/**
* 用户id
*/
private Integer userId;
}
......@@ -3,15 +3,15 @@ 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 javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
@Table(name = "app_shareholder_detail")
@Data
public class AppShareholderDetail {
public class AppShareholderDetail implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")//此处加上注解
private Integer id;
......@@ -55,4 +55,7 @@ public class AppShareholderDetail {
@Column(name = "position_id")
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 {
private Integer id;
@ApiModelProperty("用户id")
@Column(name = "user_id")
private Integer userId;
@ApiModelProperty("员工手机号")
@Column(name = "phone")
private String phone;
......
......@@ -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,9 @@ public class AppShareholderDetailVo {
@ApiModelProperty("股东身份名称")
private String positionName;
@ApiModelProperty("股东身份名称")
private List<String> companyList;
private String companyIdArray;
}
......@@ -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.vo.AppShareholderDetailVo;
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.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;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
......@@ -29,10 +30,9 @@ 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")
......@@ -50,13 +50,21 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
@Autowired
private AppUserPositionBiz appUserPositionBiz;
@Autowired
private AppShareholderDetailChangeRecordBiz appShareholderDetailChangeRecordBiz;
@Autowired
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
public static int HEADQUARTERS_SHAREHOLDER = 1;
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;
......@@ -75,21 +83,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;
//登陆表查询用户手机号
......@@ -99,26 +110,84 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
//关联查询detail表 获取身份
AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userId);
if (!(appUserDetail.getPositionId().equals(1))) {
if (positionId.equals(1)) {
detailBiz.updateUserPositionByUserId(userId, positionId);
}
detailBiz.updateUserPositionByUserId(userId, positionId);
}
}
Integer id = appShareholderDetailDTO.getId() == null ? 0 : appShareholderDetailDTO.getId();
BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail);
appShareholderDetail.setPositionId(positionId);
appShareholderDetailDTO.setUserId(userId);
//插入
if (id == null || id == 0) {
insertSelective(appShareholderDetail);
//編輯
} else {
updateSelectiveById(appShareholderDetail);
//判断股东表是否有数据,有则不插入
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();
BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail);
appShareholderDetail.setPositionId(positionId);
appShareholderDetailDTO.setUserId(userId);
// insertSelective(appShareholderDetail);
addUserFindId(appShareholderDetail);
//插入记录表
appShareholderDetailChangeRecordBiz.addAppShareholderDetailChangeRecord(appShareholderDetail, updUserId, SHAREHOLDERDE_IS_TRUE);
}
}
return ObjectRestResponse.succ();
}
//分开事务,先新增股东表 ,获取自增长ID ,存入股东变更记录表
public AppShareholderDetail addUserFindId(AppShareholderDetail appShareholderDetail) {
AppShareholderDetail appShareholderDetailNew = new AppShareholderDetail();
insertSelective(appShareholderDetail);
BeanUtils.copyProperties(appShareholderDetail, appShareholderDetailNew);
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);
// 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();
}
/**
* 分页查询
......@@ -126,22 +195,24 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
public PageDataVO<AppShareholderDetailVo> findWithPage(AppShareholderDetailFindDTO appShareholderDetailFindDTO) {
PageDataVO<AppShareholderDetailVo> dataVO = new PageDataVO<>();
Example example = new Example(AppShareholderDetail.class);
Example.Criteria criteria = example.createCriteria();
String name = null;
String phone = null;
Integer positionId = null;
Integer companyID = null;
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())) {
example.createCriteria().andEqualTo("phone", appShareholderDetailFindDTO.getPhone());
phone = appShareholderDetailFindDTO.getPhone();
}
if (Objects.nonNull(appShareholderDetailFindDTO.getCompanyId())) {
example.createCriteria().andEqualTo("companyId", appShareholderDetailFindDTO.getCompanyId());
companyID = appShareholderDetailFindDTO.getCompanyId();
}
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();
if (CollectionUtils.isEmpty(data)) {
dataVO.setData(Collections.EMPTY_LIST);
......@@ -153,13 +224,27 @@ 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);
......@@ -168,22 +253,28 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
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)
public int importShareholder(List<String[]> shareholderData, Integer userId, String userName) {
public int importShareholder(List<String[]> shareholderData, Integer operatorId) {
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;
int size = wrapperData(shareholderData, operatorId);
/*int threadNums = shareholderData.size() / BORDER_NUM == 0 ? 1 : shareholderData.size() / BORDER_NUM;
CountDownLatch latch = new CountDownLatch(threadNums);
for (int i = 0; i < threadNums; i++) {
int startIndex = i * BORDER_NUM;
int endIndex = i == (threadNums - 1) ? shareholderData.size() : (i + 1) * BORDER_NUM;
List<String[]> subResultDate = shareholderData.subList(startIndex, endIndex);
threadPoolTaskExecutor.execute(() -> {
wrapperData(subResultDate, discount, counter);
latch.countDown();
});
try {
......@@ -191,64 +282,82 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
} catch (InterruptedException e) {
throw new BaseException("导入数据失败");
}
}
return appShareholderDetail.size();
}*/
return size;
}
/**
* @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) {
data = Arrays.copyOf(data, size);
String name = data[0];
String phone = data[1];
String companyName = data[2];
String Time = data[3];
String time = data[3];
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
try {
Date relTime = formatter.parse(Time);
BranchCompany branchCompany = vehicleFeign.companyId(companyName);
if (branchCompany != null) {
Integer positionId = branchCompany.getId().equals(1) ? HEADQUARTERS_SHAREHOLDER : BRANCH_HEADQUARTERS_SHAREHOLDER;
AppShareholderDetailDTO appShareholderDetailDTO = new AppShareholderDetailDTO();
//用户表更改其身份
Integer userId = 0;
//登陆表查询用户手机号
AppUserLogin userLogin = loginBiz.checkeUserLogin(phone);
if (userLogin != null) {
userId = userLogin.getId();
appShareholderDetailDTO.setUserId(userId);
//关联查询detail表 获取身份
AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userId);
if (!(appUserDetail.getPositionId().equals(1))) {
if (positionId.equals(1)) {
detailBiz.updateUserPositionByUserId(userId, positionId);
if (StringUtils.isNotBlank(name) && StringUtils.isNotBlank(phone) && StringUtils.isNotBlank(companyName)) {
try {
total++;
Date relTime = StringUtils.isNoneBlank(time) ? formatter.parse(time) : null;
BranchCompany branchCompany = vehicleFeign.companyId(companyName);
if (branchCompany != null) {
if (branchCompany.getId() != null) {
Integer positionId = branchCompany.getId().equals(1) ? HEADQUARTERS_SHAREHOLDER : BRANCH_HEADQUARTERS_SHAREHOLDER;
AppShareholderDetailDTO appShareholderDetailDTO = new AppShareholderDetailDTO();
//用户表更改其身份
Integer userId = 0;
//登陆表查询用户手机号
AppUserLogin userLogin = loginBiz.checkeUserLogin(phone);
if (userLogin != null) {
userId = userLogin.getId();
appShareholderDetailDTO.setUserId(userId);
//关联查询detail表 获取身份
AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userId);
if (!(appUserDetail.getPositionId().equals(1))) {
detailBiz.updateUserPositionByUserId(userId, positionId);
}
}
appShareholderDetailDTO.setUserId(userId);
appShareholderDetailDTO.setPositionId(positionId);
appShareholderDetailDTO.setCompanyId(branchCompany.getId());
appShareholderDetailDTO.setCompanyName(branchCompany.getName());
appShareholderDetailDTO.setName(name);
appShareholderDetailDTO.setPhone(phone);
appShareholderDetailDTO.setRelTime(relTime);
appShareholderDetailDTO.setIsQuit(0);
appShareholderDetailDTO.setCrtTime(System.currentTimeMillis());
AppShareholderDetail appShareholderDetail = new AppShareholderDetail();
BeanUtils.copyProperties(appShareholderDetailDTO, 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);
}
}
}
appShareholderDetailDTO.setUserId(userId);
appShareholderDetailDTO.setPositionId(positionId);
appShareholderDetailDTO.setCompanyId(branchCompany.getId());
appShareholderDetailDTO.setCompanyName(branchCompany.getName());
appShareholderDetailDTO.setName(name);
appShareholderDetailDTO.setPhone(phone);
appShareholderDetailDTO.setRelTime(relTime);
appShareholderDetailDTO.setIsQuit(0);
appShareholderDetailDTO.setCrtTime(System.currentTimeMillis());
AppShareholderDetail appShareholderDetail = new AppShareholderDetail();
BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail);
mapper.insertSelective(appShareholderDetail);
} catch (ParseException e) {
log.error("股东导入失败:【{}】", e);
}
} catch (ParseException e) {
e.printStackTrace();
}
}
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;
import com.alibaba.druid.sql.visitor.functions.If;
import com.github.wxiaoqi.security.admin.dto.AppUserPositionChangeRecordDTO;
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.AppUserPositionTemp;
import com.github.wxiaoqi.security.admin.mapper.AppUserPositionChangeRecordMapper;
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.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -21,7 +15,6 @@ import tk.mybatis.mapper.entity.Example;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Transactional
......@@ -77,6 +70,7 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
appUserPositionChangeRecord.setJobRemark(COMPANY_CHANGE);
}
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
appUserPositionChangeRecord.setPhone(userPositionTemp.getPhone());
appUserPositionChangeRecord.setRelTime(relTime);
appUserPositionChangeRecord.setUserName(userPositionTemp.getName());
......@@ -99,9 +93,30 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setJobRemark(USER_ADD_COMPANY);
appUserPositionChangeRecord.setOperatorId(updUserId);
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
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
appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setJobRemark(USER_AND_ADD_COMPANY);
appUserPositionChangeRecord.setOperatorId(updUserId);
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
mapper.insert(appUserPositionChangeRecord);
}
......@@ -176,6 +192,9 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
public List<AppUserPositionChangeRecordDTO> findPositionChangeRecord(AppUserPositionTemp userPositionTemp) {
Example example = new Example(AppUserPositionChangeRecord.class);
example.createCriteria().andEqualTo("phone", userPositionTemp.getPhone());
if (userPositionTemp.getId() != null) {
example.createCriteria().andEqualTo("userId", userPositionTemp.getId());
}
List<AppUserPositionChangeRecord> list = selectByExample(example);
List<AppUserPositionChangeRecordDTO> listAppUserPositionChangeRecordDTO = new ArrayList<>();
list.stream().forEach(x -> {
......
......@@ -105,8 +105,10 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
userPositionTemp.setCompanyName(companyName);
//编辑
if (id == null || id == 0) {
insertSelective(userPositionTemp);
int ids = addUserFindId(userPositionTemp).getId();
appUserPositionTempDTO.setId(ids);
//记录表插入
// appUserPositionTempDTO.setId();
appUserPositionChangeRecordBiz.addJoinJobRecord(appUserPositionTempDTO, updUserId);
} else {
updateSelectiveById(userPositionTemp);
......@@ -118,6 +120,15 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
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) {
AppUserPositionTemp appUserPositionTemp = new AppUserPositionTemp();
appUserPositionTemp.setId(id);
......@@ -185,7 +196,7 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
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);
List<Map<String, Object>> errorResult = Lists.newArrayList();
Map<String, Object> errorResultMap;
......@@ -266,7 +277,12 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
appUserPositionTemp.setId(id);
updateSelectiveById(appUserPositionTemp);
} else {
insertSelective(appUserPositionTemp);
// insertSelective(appUserPositionTemp);
AppUserPositionTemp appUserPositionTempNew = new AppUserPositionTemp();
BeanUtils.copyProperties(appUserPositionTemp, appUserPositionTempNew);
appUserPositionTempNew = addUserFindId(appUserPositionTemp);
//记录表插入
appUserPositionChangeRecordBiz.addJoinJobRecord(appUserPositionTempNew, operatorId);
}
} catch (BaseException ex) {
......@@ -426,12 +442,12 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
}
//身份变更
if (StaffChangeStatusEnum.IDENTITY_CHANE.getCode() == changeStatus) {
//不是离职状态下
if(Objects.nonNull(userPositionTemp.getIsQuit()) && userPositionTemp.getIsQuit()!=1){
postionId = Objects.nonNull(postionId) ? postionId : appUserPositionTempDTO.getPositionId();
//更改为股东身份
loginBiz.updateUserPosition(appUserDetail.getUserid(), postionId);
}
//不是离职状态下
if (Objects.nonNull(userPositionTemp.getIsQuit()) && userPositionTemp.getIsQuit() != 1) {
postionId = Objects.nonNull(postionId) ? postionId : appUserPositionTempDTO.getPositionId();
//更改为股东身份
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;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetail;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
* @author zuoyihang
* @version 1.0
......@@ -13,4 +16,11 @@ public interface AppShareholderDetailMapper extends Mapper<AppShareholderDetail>
Integer selectShareHolderByUserIdOrPhone(@Param("userId") Integer userId,
@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;
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.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;
......@@ -22,7 +25,7 @@ import java.util.List;
@Slf4j
@RestController
@RequestMapping("/admin/appShareholder")
@RequestMapping("/appShareholder")
@Api("后台*会员管理")
public class AppShareholderDetailController {
@Autowired
......@@ -34,18 +37,22 @@ public class AppShareholderDetailController {
@Autowired
private AppShareholderDetailBiz appShareholderDetailBiz;
@Autowired
private AppShareholderDetailChangeRecordBiz appShareholderDetailChangeRecordBiz;
@ApiOperation("批量导入股东")
@PostMapping("/appShareholder/export")
@PostMapping("/export")
public ObjectRestResponse importAppShareholder(@RequestPart("file") MultipartFile appShareholderExcel, HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer operatorId = Integer.valueOf(infoFromToken.getId());
List<String[]> appShareholderData = ExcelImport.getExcelData(appShareholderExcel);
if (appShareholderData.size() < 1) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
}
appShareholderData.remove(0);
// appShareholderData.remove(0);
try {
int effectSize = appShareholderDetailBiz.importShareholder(appShareholderData, Integer.valueOf(infoFromToken.getId()), infoFromToken.getUniqueName());
int effectSize = appShareholderDetailBiz.importShareholder(appShareholderData, operatorId);
return ObjectRestResponse.succ(effectSize);
} catch (BaseException ex) {
return ObjectRestResponse.createDefaultFail();
......@@ -53,23 +60,60 @@ public class AppShareholderDetailController {
} catch (Exception e) {
throw new BaseException(e);
}
}
}
/**
* @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 {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
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) {
log.error("修改失败【{}】", e);
throw new BaseException("修改失败");
......@@ -153,38 +153,43 @@ public class AppUserPositionController {
* @return
*/
@PostMapping("/excel/import")
public ObjectRestResponse<Map<String, Object>> importUserPostion(@RequestPart("file") MultipartFile userPostionExcel) {
List<String[]> userPostionData = ExcelImport.getExcelData(userPostionExcel);
if (userPostionData.size() < 2) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
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);
if (userPostionData.size() < 2) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
}
userPostionData.remove(0);
Map<String, Object> result = appUserPositionTempBiz.importUserPostion(userPostionData,operatorId);
return ObjectRestResponse.succ(result);
} catch (Exception e) {
throw new BaseException(e);
}
userPostionData.remove(0);
Map<String, Object> result = appUserPositionTempBiz.importUserPostion(userPostionData);
return ObjectRestResponse.succ(result);
}
/**
* 删除
*
* @param id
* @return
*/
@DeleteMapping("/{id}")
public ObjectRestResponse<Void> deleteUserPostion(@PathVariable(value = "id") Integer id) {
appUserPositionTempBiz.updateAppuserPostionStatusById(id, 1);
public ObjectRestResponse<Void> deleteUserPostion(@PathVariable(value = "id") Integer id){
appUserPositionTempBiz.updateAppuserPostionStatusById(id,1);
return ObjectRestResponse.succ();
}
@PostMapping("/page")
public ObjectRestResponse<PageDataVO<AppUserPositionTempVo>> findWithPage(@RequestBody AppUserPositionTempFindDTO appUserPositionTempFindDTO) {
PageDataVO<AppUserPositionTempVo> dataVO = appUserPositionTempBiz.findWithPage(appUserPositionTempFindDTO);
return ObjectRestResponse.succ(dataVO);
public ObjectRestResponse<PageDataVO<AppUserPositionTempVo>> findWithPage(@RequestBody AppUserPositionTempFindDTO appUserPositionTempFindDTO){
PageDataVO<AppUserPositionTempVo> dataVO = appUserPositionTempBiz.findWithPage(appUserPositionTempFindDTO);
return ObjectRestResponse.succ(dataVO);
}
@GetMapping("/userid")
public List<Integer> getUserIdByParentCompany(@RequestParam("parentCompanyId") List<Integer> parentCompanyId) {
return appUserPositionTempBiz.getUserIdByParentCompany(parentCompanyId);
public List<Integer> getUserIdByParentCompany(@RequestParam("parentCompanyId") List<Integer> 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>
......@@ -2,30 +2,84 @@
<!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.AppShareholderDetailMapper">
<resultMap id="appShareholderDetailMap" type="com.github.wxiaoqi.security.admin.entity.AppShareholderDetail">
<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="updTime" column="upd_time"/>
<result property="positionId" column="position_id"/>
</resultMap>
<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="updTime" column="upd_time"/>
<result property="positionId" column="position_id"/>
</resultMap>
<select id="selectShareHolderByUserIdOrPhone" resultType="java.lang.Integer">
select min(`position_id`) from `app_shareholder_detail` where `is_quit`=0
<choose>
<when test="userId != null and (phone == null or phone != '')">
and `user_id`=#{userId}
</when>
<when test="phone != null and phone != '' and userId == null">
and `phone`=#{phone}
</when>
<otherwise>
and `user_id`=#{userId}
</otherwise>
</choose>
</select>
<select id="selectShareHolderByUserIdOrPhone" resultType="java.lang.Integer">
select min(`position_id`) from `app_shareholder_detail` where `is_quit`=0
<choose>
<when test="userId != null and (phone == null or phone != '')">
and `user_id`=#{userId}
</when>
<when test="phone != null and phone != '' and userId == null">
and `phone`=#{phone}
</when>
<otherwise>
and `user_id`=#{userId}
</otherwise>
</choose>
</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>
\ No newline at end of file
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);
/**
* 车型日历价格
......@@ -195,15 +199,6 @@ public interface VehicleFeign {
@RequestParam(value = "endDate") Long endDate,
@RequestParam(value = "vehicleModelId") Integer vehicleModelId,
@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
......@@ -212,4 +207,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