|
|
package com.glxp.api.controller.basic;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import com.glxp.api.annotation.AuthRuleAnnotation;
|
|
|
import com.glxp.api.annotation.Log;
|
|
|
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.BusinessType;
|
|
|
import com.glxp.api.controller.BaseController;
|
|
|
import com.glxp.api.entity.auth.AuthAdmin;
|
|
|
import com.glxp.api.entity.basic.BasicCorpEntity;
|
|
|
import com.glxp.api.entity.basic.UdiEntity;
|
|
|
import com.glxp.api.entity.basic.UdiRelevanceEntity;
|
|
|
import com.glxp.api.entity.basic.UdiRlSupEntity;
|
|
|
import com.glxp.api.entity.purchase.PurApplyDetailEntity;
|
|
|
import com.glxp.api.exception.JsonException;
|
|
|
import com.glxp.api.http.sync.SpGetHttpClient;
|
|
|
import com.glxp.api.req.basic.*;
|
|
|
import com.glxp.api.req.system.CompanyRequest;
|
|
|
import com.glxp.api.req.system.DeleteCompanyFileRequest;
|
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
|
import com.glxp.api.res.basic.UdiRelevanceResponse;
|
|
|
import com.glxp.api.res.basic.UdiRlSupResponse;
|
|
|
import com.glxp.api.service.auth.AuthAdminService;
|
|
|
import com.glxp.api.service.basic.*;
|
|
|
import com.glxp.api.service.purchase.PurApplyDetailService;
|
|
|
import com.glxp.api.service.system.CompanyService;
|
|
|
import com.glxp.api.util.BeanCopyUtils;
|
|
|
import com.glxp.api.util.SupplementVailUtil;
|
|
|
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;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 供应商关联耗材字典信息
|
|
|
*/
|
|
|
@RestController
|
|
|
public class UdiRlSupController extends BaseController {
|
|
|
@Resource
|
|
|
private AuthAdminService authAdminService;
|
|
|
@Resource
|
|
|
private UdiRlSupService udiRlSupService;
|
|
|
@Resource
|
|
|
private CompanyProductsRelService companyProductsRelService;
|
|
|
@Resource
|
|
|
private BasicCorpService basicUnitMaintainService;
|
|
|
|
|
|
@Resource
|
|
|
private UdiRelevanceService udiRelevanceService;
|
|
|
@Resource
|
|
|
private CompanyService companyService;
|
|
|
@Resource
|
|
|
private CompanyProductRelevanceService companyProductRelevanceService;
|
|
|
@Resource
|
|
|
private SupplementVailUtil supplementVailUtil;
|
|
|
@Resource
|
|
|
private UdiProductService udiProductService;
|
|
|
@Resource
|
|
|
private PurApplyDetailService purApplyDetailService;
|
|
|
@Resource
|
|
|
SpGetHttpClient spGetHttpClient;
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@GetMapping("/sale/info/company/product/relevance/filter")
|
|
|
public BaseResponse filterCompanyProductRelevance(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);
|
|
|
}
|
|
|
List<UdiRlSupResponse> basicInstrumentMaintainRelevanceResponses = null;
|
|
|
basicInstrumentMaintainRelevanceResponses = udiRlSupService.filterUdiGp(companyProductRelevanceRequest);
|
|
|
PageInfo<UdiRlSupResponse> pageInfo;
|
|
|
pageInfo = new PageInfo<>(basicInstrumentMaintainRelevanceResponses);
|
|
|
PageSimpleResponse<UdiRlSupResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
|
pageSimpleResponse.setList(basicInstrumentMaintainRelevanceResponses);
|
|
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
}
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@GetMapping("/sale/info/company/product/plan/relevance/filter")
|
|
|
public BaseResponse filterCompanyProductPlanRelevance(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<PurApplyDetailEntity> purApplyDetailEntityList = purApplyDetailService.findByOrderId(companyProductRelevanceRequest.getId());
|
|
|
List<Long> idList = purApplyDetailEntityList.stream().map(PurApplyDetailEntity::getProductId).collect(Collectors.toList());
|
|
|
|
|
|
List<UdiRelevanceResponse> basicInstrumentMaintainRelevanceResponses = null;
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
BeanCopyUtils.copy(companyProductRelevanceRequest, filterUdiRelRequest);
|
|
|
filterUdiRelRequest.setIds(idList);
|
|
|
basicInstrumentMaintainRelevanceResponses = udiRelevanceService.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);
|
|
|
}
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@GetMapping("/sale/info/company/product/corp/filter")
|
|
|
public BaseResponse filterRlCorp(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest,
|
|
|
BindingResult bindingResult) {
|
|
|
if (bindingResult.hasErrors()) {
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
|
}
|
|
|
if (StrUtil.isEmpty(filterCompanyProductRelevanceRequest.getUdiRlIdFk())) {
|
|
|
return ResultVOUtils.error(500, "请先选择产品!");
|
|
|
}
|
|
|
List<UdiRlSupEntity> companyProductRelevanceEntities =
|
|
|
udiRlSupService.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest);
|
|
|
|
|
|
if (!companyProductRelevanceEntities.isEmpty()) {
|
|
|
List<String> erpIds = new ArrayList<>();
|
|
|
for (UdiRlSupEntity udiRlSupEntity : companyProductRelevanceEntities) {
|
|
|
//过滤,如果默认已经有供应商了,则查出对应供应商即可
|
|
|
if (StrUtil.isNotEmpty(filterCompanyProductRelevanceRequest.getUnitFk())) {
|
|
|
if (udiRlSupEntity.getUnitFk().equals(filterCompanyProductRelevanceRequest.getUnitFk())) {
|
|
|
erpIds.add(udiRlSupEntity.getUnitFk());
|
|
|
}
|
|
|
} else {
|
|
|
erpIds.add(udiRlSupEntity.getUnitFk());
|
|
|
}
|
|
|
}
|
|
|
if (CollUtil.isEmpty(erpIds)) {
|
|
|
return ResultVOUtils.error(500, "该产品未关联供应商");
|
|
|
}
|
|
|
List<BasicCorpEntity> basicUnitMaintainEntities = basicUnitMaintainService.batchSelectByErpIdsAndName(erpIds, filterCompanyProductRelevanceRequest.getKey());
|
|
|
return ResultVOUtils.success(basicUnitMaintainEntities);
|
|
|
}
|
|
|
return ResultVOUtils.error(500, "该产品未关联供应商!");
|
|
|
|
|
|
}
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@GetMapping("/spms/info/company/product/filterAll")
|
|
|
public BaseResponse filterAll(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest,
|
|
|
BindingResult bindingResult) {
|
|
|
if (bindingResult.hasErrors()) {
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
|
}
|
|
|
List<UdiRlSupEntity> companyProductRelevanceEntities =
|
|
|
udiRlSupService.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest);
|
|
|
PageInfo<UdiRlSupEntity> pageInfo;
|
|
|
pageInfo = new PageInfo<>(companyProductRelevanceEntities);
|
|
|
PageSimpleResponse<UdiRlSupEntity> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
|
pageSimpleResponse.setList(companyProductRelevanceEntities);
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@GetMapping("/sale/info/companyProductRelevance")
|
|
|
public BaseResponse getCompanyProductRelevanceInfo(CompanyRequest companyRequest) {
|
|
|
UdiRlSupEntity udiRlSupEntity = udiRlSupService.findCompanyProductRelevance(companyRequest.getCustomerId());
|
|
|
if (udiRlSupEntity != null) {
|
|
|
return ResultVOUtils.success(udiRlSupEntity);
|
|
|
}
|
|
|
return ResultVOUtils.error(500, "空");
|
|
|
}
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@GetMapping("/sale/info/getCompanyProductRelevance")
|
|
|
public BaseResponse getCompanyProductRelevance(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest) {
|
|
|
// filterCompanyProductRelevanceRequest.setCustomerId(getCustomerId());
|
|
|
List<UdiRlSupEntity> companyProductRelevanceEntities = udiRlSupService.getCompanyProductRelevance(filterCompanyProductRelevanceRequest);
|
|
|
PageInfo<UdiRlSupEntity> pageInfo = new PageInfo<>(companyProductRelevanceEntities);
|
|
|
PageSimpleResponse<UdiRlSupEntity> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
|
pageSimpleResponse.setList(companyProductRelevanceEntities);
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
}
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@PostMapping("/sale/info/insertCompanyProductRelevance")
|
|
|
@Log(title = "单据管理", businessType = BusinessType.INSERT)
|
|
|
public BaseResponse insertCompanyProductRelevance(@RequestBody UdiRlSupEntity udiRlSupEntity) {
|
|
|
if (udiRlSupService.findCompanyProductRelevanceByProductUuid(udiRlSupEntity) != null) {
|
|
|
return ResultVOUtils.error(ResultEnum.DATA_REPEAT);
|
|
|
}
|
|
|
udiRlSupEntity.setUnitFk(null);
|
|
|
udiRlSupEntity.setCreateTime(new Date());
|
|
|
udiRlSupEntity.setUpdateTime(new Date());
|
|
|
udiRlSupEntity.setAuditStatus("3");
|
|
|
boolean b = udiRlSupService.insertCompanyProductRelevance(udiRlSupEntity);
|
|
|
return ResultVOUtils.success("成功");
|
|
|
}
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@PostMapping("/sale/info/insertFilter")
|
|
|
@Log(title = "单据管理", businessType = BusinessType.INSERT)
|
|
|
public BaseResponse insertFilter(@RequestBody UdiInfoExportRequest udiInfoExportRequest) {
|
|
|
if (StrUtil.isEmpty(udiInfoExportRequest.getUnitFk())) {
|
|
|
return ResultVOUtils.error(500, "未选择供应商!");
|
|
|
}
|
|
|
//查询本企业有没有选择该产品有选择不能选择
|
|
|
CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest();
|
|
|
// companyProductRelevanceRequest.setCustomerId(udiInfoExportRequest.getCustomerId() + "");
|
|
|
companyProductRelevanceRequest.setCustomerId(udiInfoExportRequest.getUnitFk() + "");
|
|
|
// List<CompanyProductRelevanceResponse> basicInstrumentMaintainRelevanceResponses = null;
|
|
|
List<UdiRlSupResponse> basicInstrumentMaintainRelevanceResponses = null;
|
|
|
companyProductRelevanceRequest.setDiType(1);
|
|
|
// basicInstrumentMaintainRelevanceResponses = companyProductRelevanceService.filterUdiGp(companyProductRelevanceRequest);
|
|
|
basicInstrumentMaintainRelevanceResponses = udiRlSupService.filterUdiGp(companyProductRelevanceRequest);
|
|
|
String rlidStr = udiInfoExportRequest.getRlIds().get(0);
|
|
|
for (UdiRlSupResponse obj : basicInstrumentMaintainRelevanceResponses) {
|
|
|
String rlid = String.valueOf(obj.getRlId());
|
|
|
if (rlid.equals(rlidStr)) {
|
|
|
return ResultVOUtils.error(999, "该企业已选择该产品,请勿重复选择!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
companyProductsRelService.insertCompanyProducts(udiInfoExportRequest);
|
|
|
|
|
|
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
|
|
|
udiRelevanceEntity.setId(Long.parseLong(rlidStr));
|
|
|
udiRelevanceEntity.setLockStatus(1);
|
|
|
udiRelevanceService.updateUdiRelevance(udiRelevanceEntity);
|
|
|
return ResultVOUtils.success("选入成功!");
|
|
|
}
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@PostMapping("/sale/info/updateCompanyProductRelevance")
|
|
|
@Log(title = "供应商字典管理", businessType = BusinessType.UPDATE)
|
|
|
public BaseResponse updateCompanyProductRelevance(@RequestBody UdiRlSupEntity udiRlSupEntity) {
|
|
|
udiRlSupEntity.setUpdateTime(new Date());
|
|
|
int b = udiRlSupService.updateCompanyProductRelevance(udiRlSupEntity);
|
|
|
return ResultVOUtils.success("修改成功");
|
|
|
}
|
|
|
|
|
|
@PostMapping("/sale/info/deleteCompanyProductRelevance")
|
|
|
@Log(title = "供应商字典管理", businessType = BusinessType.DELETE)
|
|
|
public BaseResponse deleteCompanyProductRelevance(@RequestBody DeleteCompanyFileRequest deleteCompanyFileRequest) {
|
|
|
boolean b = udiRlSupService.deleteById(deleteCompanyFileRequest.getId());
|
|
|
//调用同步删除的方法
|
|
|
BasicDataRequest basicDataRequest = new BasicDataRequest();
|
|
|
basicDataRequest.setDeleteCompanyFileRequest(deleteCompanyFileRequest);
|
|
|
basicDataRequest.setKey("BASIC_MANAGE");
|
|
|
Long userId = getUserId();
|
|
|
spGetHttpClient.deleteBasicData(basicDataRequest,userId+"");
|
|
|
return ResultVOUtils.success("成功");
|
|
|
}
|
|
|
|
|
|
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() + "";
|
|
|
}
|
|
|
}
|