You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/controller/auth/InvBusUserController.java

223 lines
9.8 KiB
Java

package com.glxp.api.controller.auth;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.auth.DeptEntity;
import com.glxp.api.entity.auth.InvBusUserEntity;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.auth.WarehouseBussinessTypeEntity;
import com.glxp.api.req.auth.FilterInvBusUserRequest;
import com.glxp.api.req.auth.UpdateUserRelBusRequset;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.service.auth.DeptService;
import com.glxp.api.service.auth.InvBusUserService;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.auth.WarehouseBussinessTypeService;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@RestController
public class InvBusUserController {
@Resource
InvBusUserService invBusUserService;
@Resource
WarehouseBussinessTypeService warehouseBussinessTypeService;
@AuthRuleAnnotation("")
@GetMapping("spms/bus/user/select/filter")
public BaseResponse filterSelectInvUser(FilterInvBusUserRequest filterInvBusUserRequest) {
List<InvBusUserEntity> responses = invBusUserService.filterInvBusUser(filterInvBusUserRequest);
List<WarehouseBussinessTypeEntity> warehouseBussinessTypeEntities =
warehouseBussinessTypeService.getListByCode(filterInvBusUserRequest.getSubInvCode());
warehouseBussinessTypeEntities.forEach(warehouseBussinessTypeEntity ->
{
for (InvBusUserEntity invBusUserEntity : responses) {
if (invBusUserEntity.getScAction().equals(warehouseBussinessTypeEntity.getAction())) {
warehouseBussinessTypeEntity.setSelect(true);
break;
}
}
});
return ResultVOUtils.success(warehouseBussinessTypeEntities);
}
//查询用户未关联单据类型
@AuthRuleAnnotation("")
@GetMapping("spms/bus/user/unselect/filter")
public BaseResponse filterUnSelectInvUser(FilterInvBusUserRequest filterInvBusUserRequest) {
List<InvBusUserEntity> responses = invBusUserService.filterInvBusUser(filterInvBusUserRequest);
List<String> selectedCodes = new ArrayList<>();
responses.forEach(invBusUserEntity ->
{
selectedCodes.add(invBusUserEntity.getScAction());
});
filterInvBusUserRequest.setSelectedCodes(selectedCodes);
List<WarehouseBussinessTypeEntity> warehouseBussinessTypeEntityList = invBusUserService.filterUnSelect(filterInvBusUserRequest);
PageInfo<WarehouseBussinessTypeEntity> pageInfo = new PageInfo<>(warehouseBussinessTypeEntityList);
PageSimpleResponse<WarehouseBussinessTypeEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(warehouseBussinessTypeEntityList);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
* 查询用户关联的单据类型
*
* @param filterInvBusUserRequest
* @return
*/
@AuthRuleAnnotation("")
@GetMapping("spms/bus/user/filterUserBusList")
public BaseResponse filterUserBusList(FilterInvBusUserRequest filterInvBusUserRequest) {
List<InvBusUserEntity> responses = invBusUserService.filterInvBusUser(filterInvBusUserRequest);
PageInfo<InvBusUserEntity> pageInfo = new PageInfo<>(responses);
PageSimpleResponse<WarehouseBussinessTypeEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
if (pageInfo.getTotal() == 0) {
pageSimpleResponse.setList(Collections.emptyList());
} else {
List<String> actions = responses.stream().map(InvBusUserEntity::getScAction).collect(Collectors.toList());
List<WarehouseBussinessTypeEntity> warehouseBussinessTypeEntities = warehouseBussinessTypeService.selectByActions(filterInvBusUserRequest.getSubInvCode(), actions);
pageSimpleResponse.setList(warehouseBussinessTypeEntities);
}
return ResultVOUtils.success(pageSimpleResponse);
}
@AuthRuleAnnotation("")
@PostMapping("/spms/bus/user/warehouse/update")
public BaseResponse updateRes(@RequestBody UpdateUserRelBusRequset relBusRequset) {
boolean b = invBusUserService.deleteByUnion(relBusRequset.getUserId(), relBusRequset.getSubInvCode());
if (CollUtil.isNotEmpty(relBusRequset.getInvBusUserEntities())) {
relBusRequset.getInvBusUserEntities().forEach(warehouseBussinessTypeEntity ->
{
InvBusUserEntity invBusUserEntity = new InvBusUserEntity();
invBusUserEntity.setUserId(relBusRequset.getUserId());
invBusUserEntity.setSubInvCode(relBusRequset.getSubInvCode());
invBusUserEntity.setScAction(warehouseBussinessTypeEntity.getAction());
invBusUserService.insertInvBusUser(invBusUserEntity);
});
}
InvBusUserEntity invBusUserEntity = new InvBusUserEntity();
invBusUserEntity.setSubInvCode(relBusRequset.getSubInvCode());
updateInvTime(invBusUserEntity);
return ResultVOUtils.success("修改成功!");
}
@AuthRuleAnnotation("")
@PostMapping("/spms/bus/user/warehouse/post")
public BaseResponse postRes(@RequestBody UpdateUserRelBusRequset relBusRequset) {
boolean b = invBusUserService.deleteByUnion(relBusRequset.getUserId(), relBusRequset.getSubInvCode());
if (CollUtil.isNotEmpty(relBusRequset.getSelectActions())) {
invBusUserService.deleteByUnion(relBusRequset.getUserId(), relBusRequset.getSubInvCode());
relBusRequset.getSelectActions().forEach(action ->
{
InvBusUserEntity invBusUserEntity = new InvBusUserEntity();
invBusUserEntity.setUserId(relBusRequset.getUserId());
invBusUserEntity.setSubInvCode(relBusRequset.getSubInvCode());
invBusUserEntity.setScAction(action);
// invBusUserEntity.setId(IdUtil.getSnowflakeNextId());
invBusUserService.insertInvBusUser(invBusUserEntity);
});
}
InvBusUserEntity invBusUserEntity = new InvBusUserEntity();
invBusUserEntity.setSubInvCode(relBusRequset.getSubInvCode());
updateInvTime(invBusUserEntity);
return ResultVOUtils.success("修改成功!");
}
@AuthRuleAnnotation("")
@GetMapping("spms/bus/user/warehouse/filter")
public BaseResponse filterInvWarehouse(FilterInvBusUserRequest filterInvBusUserRequest) {
List<InvBusUserEntity> responses = invBusUserService.filterInvBusUser(filterInvBusUserRequest);
return ResultVOUtils.success(responses);
}
@AuthRuleAnnotation("")
@PostMapping("/spms/bus/user/warehouse/save")
public BaseResponse save(@RequestBody @Valid InvBusUserEntity invBusUserEntity,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
boolean b = invBusUserService.insertInvBusUser(invBusUserEntity);
updateInvTime(invBusUserEntity);
if (!b) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
return ResultVOUtils.success("添加成功!");
}
@AuthRuleAnnotation("")
@PostMapping("/spms/bus/user/warehouse/edit")
public BaseResponse edit(@RequestBody @Valid InvBusUserEntity invBusUserEntity,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (invBusUserEntity.getId() == null) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
boolean b = invBusUserService.updateInvBusUser(invBusUserEntity);
updateInvTime(invBusUserEntity);
if (!b) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
return ResultVOUtils.success("修改成功!");
}
@AuthRuleAnnotation("")
@PostMapping("/spms/bus/user/warehouse/delete")
public BaseResponse delete(@RequestBody DeleteRequest deleteRequest) {
if (deleteRequest.getId() == null) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
boolean b = invBusUserService.deleteById(deleteRequest.getId());
if (!b) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
return ResultVOUtils.success();
}
@Resource
InvWarehouseService invWarehouseService;
@Resource
DeptService deptService;
public void updateInvTime(InvBusUserEntity invBusUserEntity) {
InvWarehouseEntity invSubWarehouseEntity = invWarehouseService.findByInvSubByCode(invBusUserEntity.getSubInvCode());
DeptEntity pEntity = deptService.selectByCode(invSubWarehouseEntity.getParentId());
pEntity.setUpdateTime(new Date());
deptService.updateInvWarehouse(pEntity);
}
}