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/basic/BasicDestinyRelController.java

272 lines
12 KiB
Java

package com.glxp.api.controller.basic;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.AuthAdmin;
import com.glxp.api.entity.basic.BasicSkProjectEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.basic.*;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.BasicSkProjectResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.auth.AuthAdminService;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.BasicSkProjectService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.basic.impl.BasicDestinyRelService;
import com.glxp.api.util.BeanCopyUtils;
import com.glxp.api.util.udi.FilterUdiUtils;
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 org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@RestController
public class BasicDestinyRelController {
@Resource
BasicSkProjectService basicSkProjectService;
@Resource
private CustomerService customerService;
@Resource
private UdiRelevanceService udiRelevanceService;
@Resource
private AuthAdminService authAdminService;
@Resource
private BasicDestinyRelService basicDestinyRelService;
@GetMapping("/udiwms/basic/destiny/model/filter")
public BaseResponse filterModeldestiny(BasicSkProjectRequest basicSkProjectRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<BasicSkProjectResponse> basicSkProjectResponses = basicSkProjectService.filterThrProducts(basicSkProjectRequest);
PageInfo<BasicSkProjectResponse> pageInfo = new PageInfo<>(basicSkProjectResponses);
PageSimpleResponse<BasicSkProjectResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(basicSkProjectResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
@PostMapping("/udiwms/basic/destiny/model/addModeldestiny")
public BaseResponse addModeldestiny(@RequestBody BasicSkProjectEntity basicSkProjectEntity) {
//判断名字和编号不能重复
QueryWrapper<BasicSkProjectEntity> ew = new QueryWrapper<>();
ew.eq("name", basicSkProjectEntity.getName());
// ew.eq("type", 2);
long count = basicSkProjectService.count(ew);
if (count > 0) {
return ResultVOUtils.error(999, "名称已存在!");
}
ew.clear();
ew.eq("code", basicSkProjectEntity.getCode());
// ew.eq("type", 2);
count = basicSkProjectService.count(ew);
if (count > 0) {
return ResultVOUtils.error(999, "编号已存在!");
}
AuthAdmin authAdmin = customerService.getUserBean();
basicSkProjectEntity.setId(IdUtil.getSnowflakeNextId());
basicSkProjectEntity.setCreateTime(new Date());
basicSkProjectEntity.setUpdateTime(new Date());
basicSkProjectEntity.setCreateUser(authAdmin.getId() + "");
basicSkProjectEntity.setUpdateUser(authAdmin.getId() + "");
Boolean falg = basicSkProjectService.save(basicSkProjectEntity);
if (!falg) {
return ResultVOUtils.error(999, "新增失败!");
}
return ResultVOUtils.success();
}
@PostMapping("/udiwms/basic/destiny/model/editModeldestiny")
public BaseResponse editModeldestiny(@RequestBody BasicSkProjectEntity basicSkProjectEntity) {
//判断名字和编号不能重复
QueryWrapper<BasicSkProjectEntity> ew = new QueryWrapper<>();
ew.eq("name", basicSkProjectEntity.getName());
// ew.eq("type", 2);
BasicSkProjectEntity thrProductsEntity1 = basicSkProjectService.getOne(ew);
if (thrProductsEntity1 != null && !thrProductsEntity1.getId().equals(basicSkProjectEntity.getId())) {
return ResultVOUtils.error(999, "名称已存在!");
}
ew.clear();
ew.eq("code", basicSkProjectEntity.getCode());
// ew.eq("type", 2);
thrProductsEntity1 = basicSkProjectService.getOne(ew);
if (thrProductsEntity1 != null && !thrProductsEntity1.getId().equals(basicSkProjectEntity.getId())) {
return ResultVOUtils.error(999, "编号已存在!");
}
AuthAdmin authAdmin = customerService.getUserBean();
basicSkProjectEntity.setUpdateTime(new Date());
basicSkProjectEntity.setUpdateUser(authAdmin.getId() + "");
Boolean falg = basicSkProjectService.updateById(basicSkProjectEntity);
if (!falg) {
return ResultVOUtils.error(999, "编辑失败!");
}
return ResultVOUtils.success();
}
@PostMapping("/udiwms/basic/destiny/model/delectModeldestiny")
public BaseResponse delectModeldestiny(@RequestBody BasicSkProjectEntity basicSkProjectEntity) {
Boolean falg = basicSkProjectService.removeById(basicSkProjectEntity.getId() + "");
if (!falg) {
return ResultVOUtils.error(999, "删除失败!");
}
return ResultVOUtils.success();
}
//查询产品信息
@AuthRuleAnnotation("")
@GetMapping("/udiwms/basic/destiny/model/product/filter")
public BaseResponse filterDestinyProduct(CompanyProductRelevanceRequest companyProductRelevanceRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (StrUtil.isNotEmpty(companyProductRelevanceRequest.getCustomerId())) {
String customerId = getCustomerId();
if (customerId.equals("110")) {
companyProductRelevanceRequest.setCustomerId(null);
}
}
companyProductRelevanceRequest.setIsDisable(false);
if (StrUtil.isNotEmpty(companyProductRelevanceRequest.getUdiCode())) {
UdiEntity udiEntity = FilterUdiUtils.getUdi(companyProductRelevanceRequest.getUdiCode());
if (udiEntity != null) {
companyProductRelevanceRequest.setNameCode(udiEntity.getUdi());
companyProductRelevanceRequest.setUnionCode(udiEntity.getUdi());
}
}
//如果输入DI标识精确找到不同层级对应的产品信息
if (StrUtil.isNotEmpty(companyProductRelevanceRequest.getUnionCode())) {
FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest();
filterUdiInfoRequest.setNameCode(companyProductRelevanceRequest.getUnionCode());
List<UdiRelevanceResponse> temps = udiRelevanceService.filterUdiGp(filterUdiInfoRequest);
if (temps != null && temps.size() > 0) {
companyProductRelevanceRequest.setOriginUuid(temps.get(0).getOriginUuid());
companyProductRelevanceRequest.setNameCode(filterUdiInfoRequest.getNameCode());
companyProductRelevanceRequest.setUnionCode(null);
}
} else {
//只查找主标识产品信息
companyProductRelevanceRequest.setDiType(1);
}
//查询详情id过滤
List<Long> idList = basicDestinyRelService.filterDestinyRelIds(Long.valueOf(companyProductRelevanceRequest.getId()));
List<UdiRelevanceResponse> basicInstrumentMaintainRelevanceResponses = null;
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
BeanCopyUtils.copy(companyProductRelevanceRequest, filterUdiRelRequest);
if (idList.size() > 0) {
filterUdiRelRequest.setIds(idList);
}
basicInstrumentMaintainRelevanceResponses = basicDestinyRelService.filterUdiJoinSup(filterUdiRelRequest);
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(basicInstrumentMaintainRelevanceResponses);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(basicInstrumentMaintainRelevanceResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
public String getCustomerId() {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (attributes == null) {
throw new JsonException(ResultEnum.NOT_NETWORK);
}
HttpServletRequest request = attributes.getRequest();
String userId = request.getHeader("ADMIN_ID");
AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId));
return authAdmin.getCustomerId() + "";
}
@PostMapping("/udiwms/basic/destiny/model/addModeldestinyProduct")
public BaseResponse addModeldestinyProduct(@RequestBody BasicDestinyRelRequest basicDestinyRelRequest) {
Boolean falg = basicDestinyRelService.addModeldestinyProduct(basicDestinyRelRequest);
if (!falg) {
return ResultVOUtils.error(999, "选入失败!");
}
return ResultVOUtils.success();
}
@GetMapping("/udiwms/basic/destiny/model/filterDestinyDelect")
public BaseResponse filterDestinyDelect(FilterUdiRelRequest filterUdiRelRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<UdiRelevanceResponse> thrProductsEntities = new ArrayList<>();
//查询详情id过滤
List<Long> idList = basicDestinyRelService.filterDestinyRelIds(Long.valueOf(filterUdiRelRequest.getId()));
if (idList != null && idList.size() > 0) {
filterUdiRelRequest.setDestinyId(filterUdiRelRequest.getId() + "");
filterUdiRelRequest.setIds(idList);
filterUdiRelRequest.setDiType(1);
thrProductsEntities = basicDestinyRelService.filterDestinyProducts(filterUdiRelRequest);
int i = 0;
for (UdiRelevanceResponse thrProductsEntity : thrProductsEntities) {
thrProductsEntity.setIndex(i);
i++;
}
}
PageInfo<UdiRelevanceResponse> pageInfo = new PageInfo<>(thrProductsEntities);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(thrProductsEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
@GetMapping("/udiwms/basic/destiny/model/delectModeldestinyProduct")
public BaseResponse delectModeldestinyProduct(BasicDestinyRelRequest basicDestinyRelRequest) {
Boolean falg = basicDestinyRelService.delectModeldestinyProduct(basicDestinyRelRequest);
if (!falg) {
return ResultVOUtils.error(999, "删除失败!");
}
return ResultVOUtils.success();
}
@PostMapping("/udiwms/basic/destiny/model/uploadModeldestinyProduct")
public BaseResponse uploadModeldestinyProduct(@RequestBody BasicDestinyRelRequest basicDestinyRelRequest) {
Boolean falg = basicDestinyRelService.uploadModeldestinyProduct(basicDestinyRelRequest);
if (!falg) {
return ResultVOUtils.error(999, "更新失败!");
}
return ResultVOUtils.success();
}
}