package com.glxp.api.controller.thrsys; 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.thrsys.ThrDeptEntity; import com.glxp.api.entity.thrsys.ThrInvWarehouseEntity; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.req.thrsys.FilterThrSubInvWarehouseRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.thrsys.ThrInvWarehouseResponse; import com.glxp.api.service.thrsys.ThrDeptService; import com.glxp.api.service.thrsys.ThrInvWarehouseService; 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.Date; import java.util.List; @RestController public class ThrInvWarehouseController { @Resource ThrInvWarehouseService thrInvWarehouseService; @Resource ThrDeptService thrDeptService; @GetMapping("/thirdSys/sub/inv/warehouse/filter") public BaseResponse filterInvWarehouse(FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest) { List thrInvWarehouseEntities = thrInvWarehouseService.filterThrInvWarehouse(filterThrSubInvWarehouseRequest); ThrDeptEntity thrDeptEntity = thrDeptService.selectByCode(filterThrSubInvWarehouseRequest.getParentId(), filterThrSubInvWarehouseRequest.getThirdSysFk()); for (ThrInvWarehouseEntity thrInvWarehouseEntity : thrInvWarehouseEntities) { thrInvWarehouseEntity.setParentName(thrDeptEntity.getName()); } PageInfo pageInfo = new PageInfo<>(thrInvWarehouseEntities); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(thrInvWarehouseEntities); return ResultVOUtils.success(pageSimpleResponse); } @AuthRuleAnnotation("") @GetMapping("/thirdSys/sub/inv/warehouse/filterAll") public BaseResponse filterAllInvWarehouse(FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest) { List invSubWarehouseEntities = thrInvWarehouseService.filterThrInvWarehouse(filterThrSubInvWarehouseRequest); return ResultVOUtils.success(invSubWarehouseEntities); } @AuthRuleAnnotation("") @PostMapping("/thirdSys/sub/inv/warehouse/save") public BaseResponse save(@RequestBody @Valid ThrInvWarehouseEntity invSubWarehouseEntity, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } //先判断是否存在 List ThrInvWarehouseEntityList = new ArrayList<>(); List thrInvWarehouseEntities = thrInvWarehouseService.selectByPid(invSubWarehouseEntity.getParentId()); for (ThrInvWarehouseEntity thrInvWarehouseEntity : thrInvWarehouseEntities) { if((invSubWarehouseEntity.getCode().equals(thrInvWarehouseEntity.getCode()) || invSubWarehouseEntity.getName().equals(thrInvWarehouseEntity.getName()))){ //添加集合中 ThrInvWarehouseEntityList.add(thrInvWarehouseEntity); } } if(ThrInvWarehouseEntityList.size()==0){ invSubWarehouseEntity.setId(IdUtil.getSnowflake(6, 1).nextId() + ""); boolean b = thrInvWarehouseService.insertThrInvWarehouse(invSubWarehouseEntity); ThrDeptEntity thrDeptEntity = thrDeptService.selectByCode(invSubWarehouseEntity.getParentId(), invSubWarehouseEntity.getThirdSysFk()); thrDeptEntity.setUpdateTime(new Date()); thrDeptService.updateInvWarehouse(thrDeptEntity); if (!b) { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); } return ResultVOUtils.success("添加成功!"); }else{ return ResultVOUtils.error(ResultEnum.DATA_REPEAT); } } @AuthRuleAnnotation("") @PostMapping("/thirdSys/sub/inv/warehouse/edit") public BaseResponse edit(@RequestBody @Valid ThrInvWarehouseEntity invSubWarehouseEntity, BindingResult bindingResult,FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest ) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } if (invSubWarehouseEntity.getId() == null) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } //先判断该部门下存不存在此仓库 filterThrSubInvWarehouseRequest.setCode(invSubWarehouseEntity.getCode()); filterThrSubInvWarehouseRequest.setParentId(invSubWarehouseEntity.getParentId()); List thrInvWarehouseEntities = thrInvWarehouseService.filterThrInvWarehouse(filterThrSubInvWarehouseRequest); filterThrSubInvWarehouseRequest.setName(invSubWarehouseEntity.getName()); filterThrSubInvWarehouseRequest.setCode(null); List thrInvWarehouseEntities1 = thrInvWarehouseService.filterThrInvWarehouse(filterThrSubInvWarehouseRequest); if(thrInvWarehouseEntities.size()==0 || thrInvWarehouseEntities1.size()==0){ boolean b = thrInvWarehouseService.updateThrInvWarehouse(invSubWarehouseEntity); if (!b) { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); } }else{ return ResultVOUtils.error(ResultEnum.DATA_REPEAT); } ThrDeptEntity thrDeptEntity = thrDeptService.selectByCode(invSubWarehouseEntity.getParentId(), invSubWarehouseEntity.getThirdSysFk()); thrDeptEntity.setUpdateTime(new Date()); thrDeptService.updateInvWarehouse(thrDeptEntity); return ResultVOUtils.success("修改成功!"); } @AuthRuleAnnotation("") @PostMapping("/thirdSys/sub/inv/warehouse/delete") public BaseResponse delete(@RequestBody DeleteRequest deleteRequest) { if (deleteRequest.getId() == null) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseService.selectById(deleteRequest.getId()); ThrDeptEntity thrDeptEntity = thrDeptService.selectByCode(thrInvWarehouseEntity.getParentId(), thrInvWarehouseEntity.getThirdSysFk()); thrDeptEntity.setUpdateTime(new Date()); thrDeptService.updateInvWarehouse(thrDeptEntity); boolean b = thrInvWarehouseService.deleteById(deleteRequest.getId()); if (!b) { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); } return ResultVOUtils.success("刪除成功!"); } }