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-spms-java/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java

725 lines
36 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.glxp.api.controller.basic;
import cn.hutool.core.bean.BeanUtil;
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.constant.ConstantStatus;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.entity.thrsys.ThrProductsEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.glxp.api.req.basic.*;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.req.thrsys.FilterBasicThirdSysRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.BasicProductThirdSysResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.IoCodeService;
import com.glxp.api.service.inv.InvPreProductService;
import com.glxp.api.service.inv.InvProductService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.service.thrsys.ThrDataService;
import com.glxp.api.service.thrsys.ThrSystemService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.udi.FilterUdiUtils;
import com.glxp.api.util.udi.UdiInfoUtil;
import org.springframework.beans.BeanUtils;
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 java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@RestController
public class UdiRelevanceController extends BaseController {
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
UdiProductService udiProductService;
@Resource
BasicBackUpdateProductService basicBackUpdateProductService;
@Resource
BasicUpdateProductService basicUpdateProductService;
@Resource
private SystemParamConfigService systemParamConfigService;
@Resource
private ThrSystemService thrSystemService;
@Resource
ThrDataService thrDataService;
@Resource
UdiRlSupService udiRlSupService;
@Resource
ProductInfoService productInfoService;
//手持终端下载UDI产品信息
@AuthRuleAnnotation("")
@GetMapping("/udi/udirel/download")
public BaseResponse downloadProducts(FilterUdiRelRequest filterUdiRelRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<UdiRelevanceResponse> udiRelevanceResponses = null;
udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiRelRequest);
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(udiRelevanceResponses);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiRelevanceResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
@AuthRuleAnnotation("")
@GetMapping("/udi/udirel/mutil/download")
public BaseResponse downloadMutilProducts(FilterUdiRelRequest filterUdiRelRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<UdiRelevanceResponse> udiRelevanceResponses = null;
if (StrUtil.isNotEmpty(filterUdiRelRequest.getBindRlIds())) {
String[] datas = filterUdiRelRequest.getBindRlIds().split(",");
List<String> list = Arrays.asList(datas);
filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setRelIds(list);
}
udiRelevanceResponses = udiRelevanceService.filterUdiJoinSup(filterUdiRelRequest);
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(udiRelevanceResponses);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiRelevanceResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
//基础信息-耗材字典-查询页面、业务单据-选入耗材字典-查询页面
@AuthRuleAnnotation("")
@GetMapping("/udi/udirel/filterUdi")
public BaseResponse filterUdiGp(FilterUdiRelRequest filterUdiRelRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (StrUtil.isNotEmpty(filterUdiRelRequest.getUdiCode()) && StrUtil.isEmpty(filterUdiRelRequest.getUnionCode())) {
if (StrUtil.isNotEmpty(filterUdiRelRequest.getUdiCode())) {
UdiEntity udiEntity = FilterUdiUtils.getUdi(filterUdiRelRequest.getUdiCode());
filterUdiRelRequest.setNameCode(udiEntity.getUdi());
List<UdiRelevanceResponse> temps = udiRelevanceService.filterUdiGp(filterUdiRelRequest);
if (temps != null && temps.size() > 0) {
filterUdiRelRequest.setOriginUuid(temps.get(0).getOriginUuid());
}
}
} else if (StrUtil.isNotEmpty(filterUdiRelRequest.getUnionCode()) && StrUtil.isEmpty(filterUdiRelRequest.getUdiCode())) {
if (StrUtil.isNotEmpty(filterUdiRelRequest.getUnionCode())) {
filterUdiRelRequest.setNameCode(filterUdiRelRequest.getUnionCode());
List<UdiRelevanceResponse> temps = udiRelevanceService.filterUdiGp(filterUdiRelRequest);
if (temps != null && temps.size() > 0) {
filterUdiRelRequest.setOriginUuid(temps.get(0).getOriginUuid());
filterUdiRelRequest.setNameCode(null);
}
}
} else {
filterUdiRelRequest.setDiType(1);
}
List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterUdiGp(filterUdiRelRequest);
PageInfo<UdiRelevanceResponse> pageInfo = new PageInfo<>(udiRelevanceResponses);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiRelevanceResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
//供应商器械信息选入
@AuthRuleAnnotation("")
@GetMapping("/udi/udirel/filterSmUdi")
public BaseResponse filterSmUdi(FilterUdiRelRequest filterUdiRelRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<UdiRelevanceResponse> udiRelevanceResponses = null;
if (StrUtil.isNotEmpty(filterUdiRelRequest.getUnionCode())) {
filterUdiRelRequest.setNameCode(filterUdiRelRequest.getUnionCode());
List<UdiRelevanceResponse> temps = udiRelevanceService.filterUdiGp(filterUdiRelRequest);
if (temps != null && temps.size() > 0) {
filterUdiRelRequest.setOriginUuid(temps.get(0).getOriginUuid());
filterUdiRelRequest.setNameCode(null);
}
} else {
filterUdiRelRequest.setDiType(1);
}
if (isHosUser()) {
filterUdiRelRequest.setUnitFk(null);
} else {
filterUdiRelRequest.setUnitFk(getCustomerId());
}
udiRelevanceResponses = udiRelevanceService.filterUdiGp(filterUdiRelRequest);
if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) {
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
UdiRlSupEntity companyProductRelevanceEntity =
udiRlSupService.findCompanyProductRelevanceByUdiRlIdFk(udiRelevanceResponse.getId() + "", filterUdiRelRequest.getCustomerId());
if (companyProductRelevanceEntity != null) {
udiRelevanceResponse.setIsSelect(true);
} else {
udiRelevanceResponse.setIsSelect(false);
}
}
}
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(udiRelevanceResponses);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiRelevanceResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
//资质证书选入产品列表 产品名称,生产企业过滤
@AuthRuleAnnotation("")
@GetMapping("/udi/cert/filterUdi")
public BaseResponse filterCertUdi(FilterUdiRelRequest filterUdiRelRequest) {
List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterCertUdi(filterUdiRelRequest);
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(udiRelevanceResponses);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiRelevanceResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
* 耗材字典信息获取同一产品对应DI信息
*/
@AuthRuleAnnotation("")
@GetMapping("udiwms/udiinfo/local/filterByUuid")
public BaseResponse filterLocalByUuid(FilterUdiRelRequest filterUdiRelRequest) {
if (filterUdiRelRequest.getId() == null) {
return ResultVOUtils.error(500, "产品ID主键不能为空");
}
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(filterUdiRelRequest.getId());
FilterUdiRelRequest tempRequest = new FilterUdiRelRequest();
tempRequest.setUuid(udiRelevanceEntity.getUuid());
List<UdiProductEntity> udiInfoEntities = udiProductService.filterAllUdiInfo(tempRequest);
List<UdiRelevanceResponse> udiRelevanceResponses = new ArrayList<>();
if (CollUtil.isNotEmpty(udiInfoEntities)) {
for (UdiProductEntity udiProductEntity : udiInfoEntities) {
UdiRelevanceResponse udiRelevanceResponse = new UdiRelevanceResponse();
BeanUtils.copyProperties(udiProductEntity, udiRelevanceResponse);
BeanUtil.copyProperties(udiRelevanceEntity, udiRelevanceResponse);
udiRelevanceResponses.add(udiRelevanceResponse);
}
}
return ResultVOUtils.success(udiRelevanceResponses);
}
//多选删除
@AuthRuleAnnotation("")
@PostMapping("/udi/udirel/deleteAll")
@Log(title = "单据管理", businessType = BusinessType.DELETE)
public BaseResponse deleteAll(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<String> ids = deleteRequest.getIds();
udiRelevanceService.deleteByIds(ids);
return ResultVOUtils.success("删除成功");
}
@Resource
IoCodeService codeService;
@Resource
CompanyProductRelevanceService companyProductRelevanceService;
@AuthRuleAnnotation("")
@PostMapping("/udi/udirel/deleteById")
@Log(title = "单据管理", businessType = BusinessType.DELETE)
public BaseResponse deleteById(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
String ids = deleteRequest.getId();
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(Long.parseLong(ids));
if (udiRelevanceEntity != null && udiRelevanceEntity.getUuid() != null) {
if (codeService.isExitByRelId(udiRelevanceEntity.getId() + "")) {
return ResultVOUtils.error(500, "该产品已关联单据,无法删除!");
}
if (companyProductRelevanceService.isExitByRelId(udiRelevanceEntity.getId() + "")) {
return ResultVOUtils.error(500, "该产品已被已被供应商选入,无法删除!");
}
}
udiRelevanceService.deleteById(ids);
List<UdiRelevanceEntity> udiRelevanceEntities = udiRelevanceService.selectByUuid(udiRelevanceEntity.getUuid());
if (udiRelevanceEntities == null || udiRelevanceEntities.isEmpty()) {
udiProductService.deleteByUuid(udiRelevanceEntity.getUuid());
}
return ResultVOUtils.success("删除成功");
}
@Resource
CustomerService customerService;
@AuthRuleAnnotation("")
@PostMapping("/udi/udirel/update")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateRelevanceEntity(@RequestBody UdiRelevanceSaveRequest udiRelevanceSaveRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
//更新关联表
if (udiRelevanceSaveRequest.getIsDateBy() != null && udiRelevanceSaveRequest.getIsDateBy() == 1) {
if (udiRelevanceSaveRequest.getRecentDateTime() != null) {
int time = udiRelevanceSaveRequest.getRecentDateTime() * 24;
udiRelevanceSaveRequest.setRecentDateTime(time);
}
}
//更新关联表
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
BeanUtils.copyProperties(udiRelevanceSaveRequest, udiRelevanceEntity);
udiRelevanceEntity.setId(udiRelevanceSaveRequest.getId());
udiRelevanceEntity.setUpdateTime(new Date());
udiRelevanceEntity.setModifyTime(new Date());
udiRelevanceEntity.setUpdateUser(customerService.getUserId() + "");
udiRelevanceEntity.setUseMuti(udiRelevanceEntity.getUseMuti());
udiRelevanceService.updateUdiRelevance(udiRelevanceEntity);
//关联更新
UdiProductEntity udiProductEntity = new UdiProductEntity();
udiProductEntity.setYbbm(udiRelevanceSaveRequest.getYbbm());
udiProductEntity.setMeasname(udiRelevanceSaveRequest.getMeasname());
udiProductEntity.setManufactory(udiRelevanceSaveRequest.getManufactory());
udiProductEntity.setCpms(udiRelevanceSaveRequest.getCpms());
udiProductEntity.setPrice(udiRelevanceSaveRequest.getPrice());
udiProductEntity.setSpmc(udiRelevanceSaveRequest.getSpmc());
udiProductEntity.setAllowNoBatch(udiRelevanceSaveRequest.getAllowNoBatch());
udiProductEntity.setAllowNoExpire(udiRelevanceSaveRequest.getAllowNoExpire());
udiProductEntity.setAllowNoProduct(udiRelevanceSaveRequest.getAllowNoProduct());
udiProductEntity.setAllowNoSerial(udiRelevanceSaveRequest.getAllowNoSerial());
udiProductEntity.setZxxsbzbhsydysl(udiRelevanceEntity.getUseNum());
udiProductEntity.setBasicPrductRemak1(udiRelevanceSaveRequest.getBasicPrductRemak1());
udiProductEntity.setBasicPrductRemak2(udiRelevanceSaveRequest.getBasicPrductRemak2());
udiProductEntity.setBasicPrductRemak3(udiRelevanceSaveRequest.getBasicPrductRemak3());
udiProductEntity.setBasicPrductRemak4(udiRelevanceSaveRequest.getBasicPrductRemak4());
udiProductEntity.setBasicPrductRemak5(udiRelevanceSaveRequest.getBasicPrductRemak5());
udiProductEntity.setBasicPrductRemak6(udiRelevanceSaveRequest.getBasicPrductRemak6());
udiProductEntity.setBasicPrductRemak7(udiRelevanceSaveRequest.getBasicPrductRemak7());
udiProductEntity.setBasicPrductRemak8(udiRelevanceSaveRequest.getBasicPrductRemak8());
// udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity);
if (StrUtil.isNotEmpty(udiRelevanceSaveRequest.getOriginUuid())) {
udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI);
}
udiProductEntity.setUuid(udiRelevanceSaveRequest.getUuid());
udiProductService.updateUdiInfoByUuid(udiProductEntity);
return ResultVOUtils.success("更新成功");
}
@AuthRuleAnnotation("")
@PostMapping("/udi/udirel/update/di")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateSingel(@RequestBody UdiRelevanceSaveRequest udiRelevanceSaveRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
//更新关联表
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setId(udiRelevanceSaveRequest.getId());
udiRelevanceEntity.setUpdateTime(new Date());
udiRelevanceEntity.setModifyTime(new Date());
udiRelevanceEntity.setUpdateUser(customerService.getUserId() + "");
udiRelevanceService.updateUdiRelevance(udiRelevanceEntity);
//单独更新DI
UdiProductEntity diEntity = new UdiProductEntity();
// diEntity.setMeasname(udiRelevanceSaveRequest.getMeasname());
diEntity.setPackUnit(udiRelevanceSaveRequest.getPackUnit());
diEntity.setSptm(udiRelevanceSaveRequest.getSptm());
diEntity.setUuid(udiRelevanceSaveRequest.getUuid());
diEntity.setNameCode(udiRelevanceSaveRequest.getNameCode());
udiProductService.updateUdiInfo(diEntity);
return ResultVOUtils.success("更新成功");
}
//新增或修改关联
@AuthRuleAnnotation("")
@PostMapping("/udi/udirel/check/udi")
public BaseResponse checkUdi(@RequestBody UdiCombineRequest udiCombineRequest) {
List<String> keys = udiCombineRequest.getKeys();
if (keys != null && keys.size() > 0) {
List<UdiRelevanceEntity> datas = udiRelevanceService.batchSelectByUuid(keys);
if (datas.isEmpty()) {
return ResultVOUtils.success("无被选入!");
} else {
return ResultVOUtils.error(499, "所选产品DI已经被" + "第三方产品ID" + "绑定,您确定继续对照");
}
}
return ResultVOUtils.success("未选择产品");
}
//选入查询结果的所有DI
@AuthRuleAnnotation("")
@GetMapping("/udi/udirel/combineAll")
public BaseResponse combineAll(FilterUdiRelRequest productInfoFilterRequest) {
basicUpdateProductService.relAllUdi(productInfoFilterRequest);
return ResultVOUtils.success("后台已开始导入,请稍后刷新查看");
}
@Resource
InvProductService invProductService;
@Resource
InvPreProductService invPreProductService;
//查询产品是否可以被禁用 todo 库存还未完成
@AuthRuleAnnotation("")
@PostMapping("/udi/udirel/disable")
public BaseResponse disable(@RequestBody UdiCombineRequest udiCombineRequest) {
if (invProductService.isExitByRelId(udiCombineRequest.getRelId() + "")) {
return ResultVOUtils.error(500, "库存已存在,无法禁用");
}
if (invPreProductService.isExitByRelId(udiCombineRequest.getRelId() + "")) {
return ResultVOUtils.error(500, "寄售库存已存在,无法禁用");
}
return ResultVOUtils.success("更新成功");
}
public UdiProductEntity getUdiInfo(UdiCombineRequest udiCombineRequest) {
UdiRelevanceEntity temp = udiRelevanceService.selectById(udiCombineRequest.getRelId());
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setNameCode(udiCombineRequest.getThirdId());
filterUdiRelRequest.setUuid(temp.getUuid());
List<UdiProductEntity> udiInfoEntities = udiProductService.filterUdiInfo(filterUdiRelRequest);
if (udiInfoEntities != null && udiInfoEntities.size() > 0) {
UdiProductEntity udiProductEntity = udiInfoEntities.get(0);
return udiProductEntity;
}
return null;
}
//单独选入ERP产品
@AuthRuleAnnotation("")
@PostMapping("/udi/udirel/addErp")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse addErp(@RequestBody UdiCombineRequest udiCombineRequest) {
String errMsg = null;
if (!udiCombineRequest.getSupEnable()) {
errMsg = basicUpdateProductService.addLocalProduct(udiCombineRequest);
}
if (StrUtil.isEmpty(errMsg))
return ResultVOUtils.success("添加成功!");
else {
return ResultVOUtils.error(500, errMsg);
}
}
//一键选入ERP产品
@AuthRuleAnnotation("")
@PostMapping("/udi/udirel/addAllErp")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse addAllErp(@RequestBody UdiCombineRequest udiCombineRequest) {
if (udiCombineRequest.getIsRlInv() != null && udiCombineRequest.getIsRlInv()) {
basicBackUpdateProductService.loadLocal(udiCombineRequest.getQuery(), udiCombineRequest.getThirdSys(), null, true);
} else {
basicBackUpdateProductService.loadLocal(udiCombineRequest.getQuery(), udiCombineRequest.getThirdSys(), null, null);
}
return ResultVOUtils.success("后台正在添加,请稍后刷新查看!");
}
//获取产品信息详情(多平台)
@AuthRuleAnnotation("")
@GetMapping("/udiwms/udirel/thirdSys/filter")
public BaseResponse getThirdSysfilter(FilterUdiRelRequest filterUdiRelRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
FilterBasicThirdSysRequest filterBasicThirdSysRequest = new FilterBasicThirdSysRequest();
filterBasicThirdSysRequest.setEnabled(true);
List<ThrSystemEntity> basicThirdSysEntities = thrSystemService.filterBasicThiSys(filterBasicThirdSysRequest);
List<FilterSysEntity> filterSysEntityList = new ArrayList<>();
filterSysEntityList.add(new FilterSysEntity(0, "全部"));
filterSysEntityList.add(new FilterSysEntity(1, "对照完成"));
filterSysEntityList.add(new FilterSysEntity(2, "未对照DI"));
if (basicThirdSysEntities != null && basicThirdSysEntities.size() > 0) {
for (int i = 0; i < basicThirdSysEntities.size(); i++) {
filterSysEntityList.add(new FilterSysEntity(i + 3, "未对照" + basicThirdSysEntities.get(i).getThirdName()));
}
}
filterSysEntityList.add(new FilterSysEntity(10, "最新同步"));
PageInfo<FilterSysEntity> pageInfo;
pageInfo = new PageInfo<>(filterSysEntityList);
PageSimpleResponse<FilterSysEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(filterSysEntityList);
return ResultVOUtils.success(pageSimpleResponse);
}
//获取对照过滤列表
@AuthRuleAnnotation("")
@GetMapping("/udiwms/udirel/thirdSys/detail")
public BaseResponse getThirdSysDetail(FilterUdiRelRequest filterUdiRelRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
UdiRelevanceEntity udiRelevanceEntity = null;
if (filterUdiRelRequest.getUuid() != null) {
udiRelevanceEntity = udiRelevanceService.selectUpdateByUuid(filterUdiRelRequest.getUuid());
} else {
udiRelevanceEntity = udiRelevanceService.selectById(filterUdiRelRequest.getId());
}
FilterBasicThirdSysRequest filterBasicThirdSysRequest = new FilterBasicThirdSysRequest();
filterBasicThirdSysRequest.setEnabled(true);
List<ThrSystemEntity> basicThirdSysEntities = thrSystemService.filterBasicThiSys(filterBasicThirdSysRequest);
List<BasicProductThirdSysResponse> basicProductThirdSysResponses = new ArrayList<>();
if (basicThirdSysEntities != null && basicThirdSysEntities.size() > 0) {
for (ThrSystemEntity thrSystemEntity : basicThirdSysEntities) {
if (thrSystemEntity.getThirdId().equals("thirdId")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId() != null && !udiRelevanceEntity.getThirdId().isEmpty()) {
if (udiRelevanceEntity.getThirdId() != null) {
ThrProductsEntity thrProductsEntity = thrDataService.getProducts(udiRelevanceEntity.getThirdId(), "thirdId");
if (thrProductsEntity != null) {
basicProductThirdSysResponse.setManufactory(thrProductsEntity.getManufactory());
basicProductThirdSysResponse.setRegisterNo(thrProductsEntity.getRegisterNo());
basicProductThirdSysResponse.setSpec(thrProductsEntity.getSpec());
basicProductThirdSysResponse.setThirdName(thrProductsEntity.getName());
}
}
}
basicProductThirdSysResponses.add(basicProductThirdSysResponse);
}
if (thrSystemEntity.getThirdId().equals("thirdId1")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId1()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId1());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId1() != null && !udiRelevanceEntity.getThirdId1().isEmpty()) {
ThrProductsEntity thrProductsEntity = thrDataService.getProducts(udiRelevanceEntity.getThirdId1(), "thirdId1");
if (thrProductsEntity != null) {
basicProductThirdSysResponse.setManufactory(thrProductsEntity.getManufactory());
basicProductThirdSysResponse.setRegisterNo(thrProductsEntity.getRegisterNo());
basicProductThirdSysResponse.setSpec(thrProductsEntity.getSpec());
basicProductThirdSysResponse.setThirdName(thrProductsEntity.getName());
}
}
basicProductThirdSysResponses.add(basicProductThirdSysResponse);
}
if (thrSystemEntity.getThirdId().equals("thirdId2")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId2()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId2());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId2() != null && !udiRelevanceEntity.getThirdId2().isEmpty()) {
ThrProductsEntity thrProductsEntity = thrDataService.getProducts(udiRelevanceEntity.getThirdId2(), "thirdId2");
if (thrProductsEntity != null) {
basicProductThirdSysResponse.setManufactory(thrProductsEntity.getManufactory());
basicProductThirdSysResponse.setRegisterNo(thrProductsEntity.getRegisterNo());
basicProductThirdSysResponse.setSpec(thrProductsEntity.getSpec());
basicProductThirdSysResponse.setThirdName(thrProductsEntity.getName());
}
}
basicProductThirdSysResponses.add(basicProductThirdSysResponse);
}
if (thrSystemEntity.getThirdId().equals("thirdId3")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId3()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId3());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId3() != null && !udiRelevanceEntity.getThirdId3().isEmpty()) {
ThrProductsEntity thrProductsEntity = thrDataService.getProducts(udiRelevanceEntity.getThirdId3(), "thirdId3");
if (thrProductsEntity != null) {
basicProductThirdSysResponse.setManufactory(thrProductsEntity.getManufactory());
basicProductThirdSysResponse.setRegisterNo(thrProductsEntity.getRegisterNo());
basicProductThirdSysResponse.setSpec(thrProductsEntity.getSpec());
basicProductThirdSysResponse.setThirdName(thrProductsEntity.getName());
}
}
basicProductThirdSysResponses.add(basicProductThirdSysResponse);
}
if (thrSystemEntity.getThirdId().equals("thirdId4")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId4()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId4());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId4() != null && !udiRelevanceEntity.getThirdId4().isEmpty()) {
ThrProductsEntity thrProductsEntity = thrDataService.getProducts(udiRelevanceEntity.getThirdId4(), "thirdId4");
if (thrProductsEntity != null) {
basicProductThirdSysResponse.setManufactory(thrProductsEntity.getManufactory());
basicProductThirdSysResponse.setRegisterNo(thrProductsEntity.getRegisterNo());
basicProductThirdSysResponse.setSpec(thrProductsEntity.getSpec());
basicProductThirdSysResponse.setThirdName(thrProductsEntity.getName());
}
}
basicProductThirdSysResponses.add(basicProductThirdSysResponse);
}
}
}
PageInfo<BasicProductThirdSysResponse> pageInfo;
pageInfo = new PageInfo<>(basicProductThirdSysResponses);
PageSimpleResponse<BasicProductThirdSysResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(basicProductThirdSysResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
//获取是否启用供应商维护产品信息
@AuthRuleAnnotation("")
@GetMapping("/udiwms/udiinfo/spcombie")
public BaseResponse getSBCombie() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sp_combie_products");
return ResultVOUtils.success(systemParamConfigEntity);
}
@AuthRuleAnnotation("")
@PostMapping("/udiwms/udirl/lock/status")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse uploadThirdServcie(@RequestBody LockUdiRequest lockUdiRequest) {
if (lockUdiRequest.getLockStatus() != null && lockUdiRequest.getIds().size() > 0) {
for (Long id : lockUdiRequest.getIds()) {
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setId(id);
udiRelevanceEntity.setLockStatus(lockUdiRequest.getLockStatus());
udiRelevanceService.updateUdiRelevance(udiRelevanceEntity);
}
return ResultVOUtils.success("更新成功!");
} else {
return ResultVOUtils.error(500, "参数错误!!");
}
}
@AuthRuleAnnotation("")
@PostMapping("/udi/udirel/updateById")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateById(@RequestBody UdiProductEntity udiProductEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
boolean falg = udiProductService.updateUdiInfoById(udiProductEntity);
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setId(udiProductEntity.getUid());
udiRelevanceEntity.setGroupBuy(udiProductEntity.isGroupBuy());
boolean b = udiRelevanceService.updateUdiRelevance(udiRelevanceEntity);
if (udiProductEntity.getRelSupId() != null) {
UdiRlSupEntity udiRlSupEntity = new UdiRlSupEntity();
udiRlSupEntity.setUpdateTime(new Date());
udiRlSupEntity.setPrice(new BigDecimal(udiProductEntity.getPrice()));
udiRlSupEntity.setId(udiProductEntity.getRelSupId());
udiRlSupService.updateCompanyProductRelevance(udiRlSupEntity);
}
if (falg) {
return ResultVOUtils.success("更新成功");
} else {
return ResultVOUtils.error(999, "更新失败");
}
}
//业务单据选入耗材字典查询列表
/**
* 查询产品规格型号列表
*
* @param relId
* @return
*/
@GetMapping("/udiwms/udiinfo/getGgxhList")
public BaseResponse getGgxhList(String relId) {
if (StrUtil.isBlank(relId)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
List<String> ggxhList = udiProductService.getGgxhList(relId);
return ResultVOUtils.success(ggxhList);
}
//国家库uuid获取产品
@PostMapping("/udi/udirel/selectOriginuuid")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse selectOriginuuid(@RequestBody ProductInfoFilterRequest productInfoFilterRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<ProductInfoEntity> udiProductEntities = productInfoService.findAll(productInfoFilterRequest);
return ResultVOUtils.success(udiProductEntities);
}
}