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/thrsys/ThrSystemController.java

321 lines
14 KiB
Java

2 years ago
package com.glxp.api.controller.thrsys;
import cn.hutool.core.bean.BeanUtil;
2 years ago
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
2 years ago
import com.glxp.api.annotation.Log;
2 years ago
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
2 years ago
import com.glxp.api.constant.BusinessType;
2 years ago
import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.glxp.api.entity.thrsys.ThrSystemDetailEntity;
import com.glxp.api.httpClient.ErpBasicClient;
2 years ago
import com.glxp.api.req.thrsys.FilterBasicThirdSysDetailRequest;
import com.glxp.api.req.thrsys.FilterBasicThirdSysRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.thrsys.BasicThirdSysResponse;
import com.glxp.api.service.thrsys.IThrBusTypeOriginService;
import com.glxp.api.service.thrsys.ThrSystemBusApiService;
import com.glxp.api.service.thrsys.ThrSystemDetailService;
import com.glxp.api.service.thrsys.ThrSystemService;
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.List;
import java.util.stream.Collectors;
@RestController
public class ThrSystemController {
@Resource
private ThrSystemService thrSystemService;
@Resource
private ThrSystemDetailService thrSystemDetailService;
// @Resource
// UdiRelevanceService udiRelevanceService;
// @Resource
// UnitMaintainService unitMaintainService;
@Resource
ThrSystemBusApiService thrSystemBusApiService;
@Resource
private IThrBusTypeOriginService thrBusTypeOriginService;
@GetMapping("/udiwms/basic/thirdsys/filter")
public BaseResponse filter(FilterBasicThirdSysRequest filterBasicThirdSysRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<ThrSystemEntity> basicThirdSysEntities;
basicThirdSysEntities = thrSystemService.filterBasicThiSys(filterBasicThirdSysRequest);
PageInfo<ThrSystemEntity> pageInfo;
pageInfo = new PageInfo<>(basicThirdSysEntities);
PageSimpleResponse<ThrSystemEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(basicThirdSysEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
*
*/
@AuthRuleAnnotation("")
@GetMapping("/udiwms/basic/thirdsys/get")
public BaseResponse get(FilterBasicThirdSysRequest filterBasicThirdSysRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<ThrSystemEntity> basicThirdSysEntities;
basicThirdSysEntities = thrSystemService.filterBasicThiSys(filterBasicThirdSysRequest);
List<BasicThirdSysResponse> basicThirdSysResponses = basicThirdSysEntities.stream().map(item ->
{
BasicThirdSysResponse basicThirdSysResponse = new BasicThirdSysResponse();
BeanUtil.copyProperties(item, basicThirdSysResponse);
2 years ago
return basicThirdSysResponse;
}).collect(Collectors.toList());
basicThirdSysResponses.add(new BasicThirdSysResponse("ybbm", "医保编码"));
basicThirdSysResponses.add(new BasicThirdSysResponse("sptm", "商品条码"));
basicThirdSysResponses.add(new BasicThirdSysResponse("udiCode", "UDI最小销售标识"));
return ResultVOUtils.success(basicThirdSysResponses);
}
@GetMapping("/udiwms/basic/thirdsys/selectIp")
public BaseResponse selectIp(FilterBasicThirdSysDetailRequest filterBasicThirdSysDetailRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
ThrSystemEntity thrSystemEntity = thrSystemService.selectByThirdId(filterBasicThirdSysDetailRequest.getThirdSysFk());
return ResultVOUtils.success(thrSystemEntity);
}
@PostMapping("/udiwms/basic/thirdsys/update")
2 years ago
@Log(title = "第三方系统", businessType = BusinessType.UPDATE)
2 years ago
public BaseResponse save(@RequestBody @Valid ThrSystemEntity thrSystemEntity,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (thrSystemEntity != null) {
//校验系统名称
if (StrUtil.isBlank(thrSystemEntity.getThirdName())) {
return ResultVOUtils.error(500, "系统名称不能为空");
}
//校验系统名称是否重复
boolean exists = thrSystemService.selectThirdNameExists(thrSystemEntity.getThirdId(), thrSystemEntity.getThirdName());
if (exists) {
return ResultVOUtils.error(500, "第三方系统名称重复");
}
ThrSystemEntity temp = thrSystemService.selectByThirdId(thrSystemEntity.getThirdId());
if (!thrSystemEntity.getEnabled()) {
//如操作为禁用第三方系统,则需要判断是否是最后一个启用的第三方系统,需要保留至少启用一个第三方系统
FilterBasicThirdSysRequest filterBasicThirdSysRequest = new FilterBasicThirdSysRequest();
filterBasicThirdSysRequest.setEnabled(true);
int count = thrSystemService.countThirdSys(filterBasicThirdSysRequest);
if (count == 1) {
return ResultVOUtils.error(500, "至少需需用一个第三方系统!");
}
}
if (thrSystemEntity.getMainSys() && !thrSystemEntity.getEnabled()) {
return ResultVOUtils.error(500, "主系统必须启用");
}
//todo 耗材字典还未完成
// if (!temp.getMainSys().equals(basicThirdSysEntity.getMainSys())) {
// if (udiRelevanceService.isExit() || unitMaintainService.isExit()) {
// return ResultVOUtils.error(999, "产品信息已经关联,无法取消主系统!");
// }
// if ((!temp.getEnabled()) && basicThirdSysEntity.getMainSys()) {
// if (!basicThirdSysEntity.getEnabled()) {
// return ResultVOUtils.error(999, "请先启用系统!");
// }
// }
// if (!basicThirdSysEntity.getEnabled() && basicThirdSysEntity.getMainSys()) {
// return ResultVOUtils.error(999, "请先启用系统!");
// }
// }
if (thrSystemEntity.getMainSys()) {
List<ThrSystemEntity> basicThirdSysEntities = thrSystemService.filterBasicThiSys(new FilterBasicThirdSysRequest());
for (ThrSystemEntity thrSystemEntity1 : basicThirdSysEntities) {
thrSystemEntity1.setMainSys(false);
thrSystemService.updateBasicThiSys(thrSystemEntity1);
}
}
thrSystemService.updateBasicThiSys(thrSystemEntity);
} else {
ResultVOUtils.error(999, "参数错误");
}
return ResultVOUtils.success("更新成功");
}
@GetMapping("/udiwms/basic/thirdsys/filterDetail")
public BaseResponse filterDetail(FilterBasicThirdSysDetailRequest filterBasicThirdSysDetailRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<ThrSystemDetailEntity> basicThirdSysEntities;
basicThirdSysEntities = thrSystemDetailService.filterBasicThirdSysDetail(filterBasicThirdSysDetailRequest);
PageInfo<ThrSystemDetailEntity> pageInfo;
pageInfo = new PageInfo<>(basicThirdSysEntities);
PageSimpleResponse<ThrSystemDetailEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(basicThirdSysEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
@GetMapping("/udiwms/basic/thirdsys/filterDetailByKey")
public BaseResponse filterDetailByKey(FilterBasicThirdSysDetailRequest filterBasicThirdSysDetailRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
ThrSystemDetailEntity thrSystemDetailEntity = thrSystemDetailService.
selectByKey(filterBasicThirdSysDetailRequest.getKey(), filterBasicThirdSysDetailRequest.getThirdSysFk());
return ResultVOUtils.success(thrSystemDetailEntity);
}
@PostMapping("/udiwms/basic/thirdsys/saveDetail")
2 years ago
@Log(title = "第三方系统", businessType = BusinessType.UPDATE)
2 years ago
public BaseResponse saveDetail(@RequestBody @Valid ThrSystemDetailEntity thrSystemDetailEntity,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (thrSystemDetailEntity != null) {
thrSystemDetailService.updateBasicThirdSysDetail(thrSystemDetailEntity);
} else {
ResultVOUtils.error(999, "参数错误");
}
return ResultVOUtils.success("更新成功");
}
/**
*
*
* @param list
* @return
*/
@PostMapping("/udiwms/basic/thirdsys/updateInterfaceStatus")
2 years ago
@Log(title = "第三方系统", businessType = BusinessType.UPDATE)
2 years ago
public BaseResponse updateInterfaceStatus(@RequestBody List<ThrSystemDetailEntity> list) {
if (CollUtil.isEmpty(list)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
thrSystemDetailService.updateInterfaceStatus(list);
return ResultVOUtils.success("添加成功");
}
@GetMapping("/udiwms/basic/thirdsys/filterBusTypeDetail")
public BaseResponse filterBusTypeDetail(FilterBasicThirdSysDetailRequest filterBasicThirdSysDetailRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<ThrSystemBusApiEntity> basicThirdSysEntities = thrSystemBusApiService.filterSysBusApi(filterBasicThirdSysDetailRequest);
PageInfo<ThrSystemBusApiEntity> pageInfo;
pageInfo = new PageInfo<>(basicThirdSysEntities);
PageSimpleResponse<ThrSystemBusApiEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(basicThirdSysEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
@PostMapping("/udiwms/basic/thirdsys/saveBusTypeDetail")
2 years ago
@Log(title = "第三方系统", businessType = BusinessType.UPDATE)
2 years ago
public BaseResponse saveBusTypeDetail(@RequestBody @Valid ThrSystemBusApiEntity thrSystemBusApiEntity,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (thrSystemBusApiEntity != null) {
thrSystemBusApiService.updateSysBusApi(thrSystemBusApiEntity);
} else {
ResultVOUtils.error(999, "参数错误");
}
return ResultVOUtils.success("更新成功");
}
/**
* /
*
* @param thrSystemBusApiEntity
* @return
*/
@PostMapping("/udiwms/basic/thirdsys/saveBusTypes")
2 years ago
@Log(title = "第三方系统", businessType = BusinessType.INSERT)
2 years ago
public BaseResponse saveBusTypes(@RequestBody ThrSystemBusApiEntity thrSystemBusApiEntity) {
if (null == thrSystemBusApiEntity || null == thrSystemBusApiEntity.getType()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
boolean result = thrSystemBusApiService.saveBusTypes(thrSystemBusApiEntity);
if (result) {
return ResultVOUtils.success();
}
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
@GetMapping("/udiwms/basic/thirdsys/delete")
2 years ago
@Log(title = "第三方系统", businessType = BusinessType.DELETE)
2 years ago
public BaseResponse delete(Integer id) {
if (null == id) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
boolean result = thrSystemBusApiService.delete(id);
if (result) {
return ResultVOUtils.success();
}
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
/**
*
*
* @return
*/
@PostMapping("/udiwms/basic/thirdsys/testThirdService")
public BaseResponse testThirdService(@RequestBody ThrSystemEntity thrSystemEntity) {
return thrSystemDetailService.testThirdService(thrSystemEntity);
}
@Resource
ErpBasicClient erpBasicClient;
@PostMapping("/udiwms/basic/thirdsys/testThirdInter")
public BaseResponse testThirdInter(@RequestBody ThrSystemEntity thrSystemEntity) {
return erpBasicClient.testThridConnect(thrSystemEntity);
}
}