|
|
package com.glxp.api.controller.basic;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.thread.ThreadUtil;
|
|
|
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.annotation.CusRedissonAnnotation;
|
|
|
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.constant.RedissonCacheKey;
|
|
|
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.StringUtils;
|
|
|
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.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@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.filterList(basicSkProjectRequest);
|
|
|
if (CollectionUtil.isNotEmpty(basicSkProjectResponses)){
|
|
|
List<Long> pId = basicSkProjectResponses.stream().map(BasicSkProjectResponse::getId).collect(Collectors.toList());
|
|
|
Map<Long,BigDecimal> priceMap = basicDestinyRelService.sumPriceByRedIds(pId);
|
|
|
basicSkProjectResponses.forEach( x -> {
|
|
|
BigDecimal price = priceMap.get(x.getId());
|
|
|
x.setPrice(String.valueOf(price));
|
|
|
});
|
|
|
}
|
|
|
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.setStatus(1);//草稿
|
|
|
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 = null;
|
|
|
if (companyProductRelevanceRequest.getId() != null)
|
|
|
idList = basicDestinyRelService.filterDestinyRelIds(Long.valueOf(companyProductRelevanceRequest.getId()));
|
|
|
|
|
|
List<UdiRelevanceResponse> basicInstrumentMaintainRelevanceResponses = null;
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
BeanCopyUtils.copy(companyProductRelevanceRequest, filterUdiRelRequest);
|
|
|
if (CollUtil.isNotEmpty(idList)) {
|
|
|
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("ADMINID");
|
|
|
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();
|
|
|
}
|
|
|
|
|
|
|
|
|
@CusRedissonAnnotation(cacheName = RedissonCacheKey.DL_SICKER, key = {"#dlThirdDestinyRequest.thirdSys"}, waitTime = 3, timeOutMsg = "后台正在下载,请勿重复提交")
|
|
|
@PostMapping("/udiwms/basic/destiny/project/download")
|
|
|
public BaseResponse dlProject(@RequestBody DlThirdDestinyRequest dlThirdDestinyRequest, BindingResult bindingResult) {
|
|
|
|
|
|
if (bindingResult.hasErrors()) {
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
|
}
|
|
|
ThreadUtil.execAsync(() -> {
|
|
|
basicDestinyRelService.dlThirdDestiny(dlThirdDestinyRequest);
|
|
|
});
|
|
|
return ResultVOUtils.success("后台已开始下载,请稍后刷新查看!");
|
|
|
}
|
|
|
|
|
|
@PostMapping("/udiwms/basic/destiny/model/submitSkSkProject")
|
|
|
public BaseResponse submitSkSkProject(@RequestBody BasicSkProjectEntity basicSkProjectEntity) {
|
|
|
|
|
|
Long id = basicSkProjectEntity.getId();
|
|
|
if (id == null){
|
|
|
return ResultVOUtils.error(999, "提交失败,id不可以为空!");
|
|
|
}
|
|
|
Boolean falgf = basicSkProjectService.generateProduct(id);
|
|
|
if (!falgf) {
|
|
|
return ResultVOUtils.error(999, "生成产品失败!");
|
|
|
}
|
|
|
AuthAdmin authAdmin = customerService.getUserBean();
|
|
|
basicSkProjectEntity.setStatus(3);//审核通过
|
|
|
basicSkProjectEntity.setUpdateTime(new Date());
|
|
|
basicSkProjectEntity.setUpdateUser(authAdmin.getId() + "");
|
|
|
|
|
|
Boolean falg = basicSkProjectService.updateById(basicSkProjectEntity);
|
|
|
if (!falg) {
|
|
|
return ResultVOUtils.error(999, "编辑失败!");
|
|
|
}
|
|
|
return ResultVOUtils.success();
|
|
|
}
|
|
|
|
|
|
}
|