Commit 920f8df3 authored by zuoyh's avatar zuoyh

Merge branch 'saff_update_feature' into dev

# Conflicts:
#	xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
parents 09ee2ade 44b35895
...@@ -55,6 +55,9 @@ public class AppShareholderDetailDTO { ...@@ -55,6 +55,9 @@ 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;
......
...@@ -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,7 @@ public class AppShareholderDetailVo { ...@@ -49,4 +50,7 @@ public class AppShareholderDetailVo {
@ApiModelProperty("股东身份名称") @ApiModelProperty("股东身份名称")
private String positionName; private String positionName;
@ApiModelProperty("股东身份名称")
private List<String> companyList;
} }
...@@ -13,6 +13,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException; ...@@ -13,6 +13,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.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;
...@@ -20,19 +21,19 @@ import org.apache.commons.collections.CollectionUtils; ...@@ -20,19 +21,19 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
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.data.mongodb.core.mapreduce.GroupBy;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; 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.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")
...@@ -53,6 +54,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -53,6 +54,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
@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;
...@@ -75,21 +77,24 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -75,21 +77,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;
//登陆表查询用户手机号 //登陆表查询用户手机号
...@@ -108,13 +113,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -108,13 +113,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
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) {
insertSelective(appShareholderDetail);
//編輯
} else {
updateSelectiveById(appShareholderDetail);
}
} }
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
...@@ -128,19 +127,21 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -128,19 +127,21 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
PageDataVO<AppShareholderDetailVo> dataVO = new PageDataVO<>(); PageDataVO<AppShareholderDetailVo> dataVO = new PageDataVO<>();
Example example = new Example(AppShareholderDetail.class); Example example = new Example(AppShareholderDetail.class);
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getName())) { if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getName())) {
example.createCriteria().andEqualTo("name", String.format("%%%s%%", appShareholderDetailFindDTO.getName().trim())); criteria.andLike("name", String.format("%%%s%%", appShareholderDetailFindDTO.getName().trim()));
} }
if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getPhone())) { if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getPhone())) {
example.createCriteria().andEqualTo("phone", appShareholderDetailFindDTO.getPhone()); criteria.andEqualTo("phone", appShareholderDetailFindDTO.getPhone());
} }
if (Objects.nonNull(appShareholderDetailFindDTO.getCompanyId())) { if (Objects.nonNull(appShareholderDetailFindDTO.getCompanyId())) {
example.createCriteria().andEqualTo("companyId", appShareholderDetailFindDTO.getCompanyId()); criteria.andEqualTo("companyId", appShareholderDetailFindDTO.getCompanyId());
} }
if (Objects.nonNull(appShareholderDetailFindDTO.getPositionId())) { if (Objects.nonNull(appShareholderDetailFindDTO.getPositionId())) {
example.createCriteria().andEqualTo("positionId", appShareholderDetailFindDTO.getPositionId()); criteria.andEqualTo("positionId", appShareholderDetailFindDTO.getPositionId());
} }
example.setOrderByClause("crt_time desc"); List<AppShareholderDetail> list = mapper.selectByExample(example);
example.setOrderByClause("upd_time desc");
PageDataVO<AppShareholderDetail> pageDataVO = PageDataVO.pageInfo(appShareholderDetailFindDTO.getPage(), appShareholderDetailFindDTO.getLimit(), () -> mapper.selectByExample(example)); PageDataVO<AppShareholderDetail> pageDataVO = PageDataVO.pageInfo(appShareholderDetailFindDTO.getPage(), appShareholderDetailFindDTO.getLimit(), () -> mapper.selectByExample(example));
List<AppShareholderDetail> data = pageDataVO.getData(); List<AppShareholderDetail> data = pageDataVO.getData();
if (CollectionUtils.isEmpty(data)) { if (CollectionUtils.isEmpty(data)) {
...@@ -153,16 +154,31 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -153,16 +154,31 @@ 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(AppShareholderDetailMerge);
dataVO.setTotalCount(pageDataVO.getTotalCount()); dataVO.setTotalCount(pageDataVO.getTotalCount());
dataVO.setTotalPage(pageDataVO.getTotalPage()); dataVO.setTotalPage(pageDataVO.getTotalPage());
return dataVO; return dataVO;
...@@ -174,8 +190,6 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -174,8 +190,6 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
@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 userId, String userName) {
List<AppShareholderDetail> appShareholderDetail = new ArrayList<>(); 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 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++) {
...@@ -183,7 +197,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -183,7 +197,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
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); wrapperData(subResultDate);
latch.countDown(); latch.countDown();
}); });
try { try {
...@@ -191,18 +205,14 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -191,18 +205,14 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new BaseException("导入数据失败"); throw new BaseException("导入数据失败");
} }
} }
return appShareholderDetail.size(); return appShareholderDetail.size();
} }
/** /**
* @param subResultDate * @param subResultDate
* @param discount
* @param counter
*/ */
private void wrapperData(List<String[]> subResultDate, Integer discount, AtomicInteger counter) { private void wrapperData(List<String[]> subResultDate) {
for (String[] data : subResultDate) { for (String[] data : subResultDate) {
String name = data[0]; String name = data[0];
...@@ -244,10 +254,8 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -244,10 +254,8 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail); BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail);
mapper.insertSelective(appShareholderDetail); mapper.insertSelective(appShareholderDetail);
} }
} catch (ParseException e) { } catch (ParseException e) {
e.printStackTrace(); log.error("股东导入失败:【{}】", e);
} }
} }
} }
......
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.dto.AppShareholderDetailDTO;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailFindDTO;
import com.github.wxiaoqi.security.admin.vo.AppShareholderDetailVo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.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;
...@@ -53,23 +54,35 @@ public class AppShareholderDetailController { ...@@ -53,23 +54,35 @@ public class AppShareholderDetailController {
} catch (Exception e) { } catch (Exception e) {
throw new BaseException(e); throw new BaseException(e);
} }
} }
/**
* @param appShareholderDetailFindDTO
* @return
*/
@GetMapping("/page")
public ObjectRestResponse<PageDataVO<AppShareholderDetailVo>> findWithPage(@RequestBody AppShareholderDetailFindDTO appShareholderDetailFindDTO) {
PageDataVO<AppShareholderDetailVo> dataVO = appShareholderDetailBiz.findWithPage(appShareholderDetailFindDTO);
return ObjectRestResponse.succ(dataVO);
}
/**
* 新增或编辑身份信息
*
* @return
*/
@PostMapping("/addUserPostion")
public ObjectRestResponse<Void> addUserPostion(@RequestBody AppShareholderDetailDTO appShareholderDetailDTO, HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer updUserId = Integer.valueOf(infoFromToken.getId());
return appShareholderDetailBiz.add(appShareholderDetailDTO, updUserId);
} catch (Exception e) {
log.error("新增失败【{}】", e);
throw new BaseException("新增失败");
}
}
} }
package com.xxfc.platform.vehicle.feign; 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);
/** /**
* 车型日历价格 * 车型日历价格
...@@ -212,4 +216,10 @@ public interface VehicleFeign { ...@@ -212,4 +216,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