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/BasicDataController.java

207 lines
8.8 KiB
Java

package com.glxp.api.controller.basic;
import com.alibaba.fastjson2.JSON;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BasicDataType;
import com.glxp.api.constant.SocketMsgType;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.sync.SocketMsgEntity;
import com.glxp.api.entity.sync.SyncEditLogEntity;
import com.glxp.api.entity.sync.SyncEditTypeEntity;
import com.glxp.api.req.basic.*;
import com.glxp.api.req.system.DeleteCompanyFileRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.service.auth.InvBusUserService;
import com.glxp.api.service.auth.WarehouseBussinessTypeService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.IoCodeService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.sync.SyncEditLogService;
import com.glxp.api.service.sync.SyncEditTypeService;
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.util.Date;
import java.util.List;
@RestController
public class BasicDataController extends BaseController {
@Resource
SyncEditLogService syncEditLogService;
@Resource
SyncEditTypeService syncEditTypeService;
@Resource
BasicBussinessTypeController basicBussinessTypeController;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
IoCodeService codeService;
@Resource
CompanyProductRelevanceService companyProductRelevanceService;
@Resource
UdiProductService udiProductService;
@Resource
UdiRlSupService udiRlSupService;
@Resource
BasicCorpService basicUnitMaintainService;
@Resource
private IBasicBussinessTypeService basicBussinessTypeService;
@Resource
IoOrderService orderService;
@Resource
InvBusUserService invBusUserService;
@Resource
WarehouseBussinessTypeService warehouseBussinessTypeService;
//手持终端下载UDI产品信息
@AuthRuleAnnotation("")
@PostMapping("/udiwms/basicData/deleteBasicData")
public BaseResponse downloadProducts(@RequestBody BasicDataRequest basicDataRequest) {
BaseResponse baseResponse = null;
switch (basicDataRequest.getKey()) {
case BasicDataType.BASIC_MAINTAIN:
//耗材字典
baseResponse = deleteById(basicDataRequest.getDeleteRequest());
//插入日志
insertLog(basicDataRequest.getDeleteBasicDataRequest(), baseResponse, basicDataRequest.getDeleteBasicDataRequest().getUserId());
//插入操作数据类型记录表
insertType(basicDataRequest.getDeleteBasicDataRequest());
break;
case BasicDataType.BASIC_MANAGE:
//供应商器械信息
baseResponse = deleteCompanyProductRelevance(basicDataRequest.getDeleteCompanyFileRequest());
//插入日志
insertLog(basicDataRequest.getDeleteBasicDataRequest(), baseResponse, basicDataRequest.getDeleteBasicDataRequest().getUserId());
//插入操作数据类型记录表
insertType(basicDataRequest.getDeleteBasicDataRequest());
break;
case BasicDataType.BASIC_CORP_MAINTAIN:
//往来信息维护
baseResponse = deleteBasicUnitMaintain(basicDataRequest.getDeleteRequest());
//插入日志
insertLog(basicDataRequest.getDeleteBasicDataRequest(), baseResponse, basicDataRequest.getDeleteBasicDataRequest().getUserId());
//插入操作数据类型记录表
insertType(basicDataRequest.getDeleteBasicDataRequest());
break;
case BasicDataType.BASIC_BUSINESS_TYPE:
//单据类型设置
baseResponse = deleteBussinessType(basicDataRequest.getDeleteRequest());
//插入日志
insertLog(basicDataRequest.getDeleteBasicDataRequest(), baseResponse, basicDataRequest.getDeleteBasicDataRequest().getUserId());
//插入操作数据类型记录表
insertType(basicDataRequest.getDeleteBasicDataRequest());
break;
default:
break;
}
return ResultVOUtils.success(baseResponse);
}
public void insertLog(DeleteBasicDataRequest deleteBasicDataRequest, BaseResponse response, String userId) {
SyncEditLogEntity syncEditLogEntity = new SyncEditLogEntity();
syncEditLogEntity.setRecordCode(deleteBasicDataRequest.getRecordCode());
syncEditLogEntity.setOperType(2);
syncEditLogEntity.setDataType(deleteBasicDataRequest.getDataType());
syncEditLogEntity.setParam(deleteBasicDataRequest.getParam());
syncEditLogEntity.setJsonResult(JSON.toJSONString(response.getData()));
syncEditLogEntity.setDirectType(2);
syncEditLogEntity.setOperUser(userId);
syncEditLogEntity.setUpdateTime(new Date());
syncEditLogService.insertLog(syncEditLogEntity);
}
public void insertType(DeleteBasicDataRequest deleteBasicDataRequest) {
SyncEditTypeEntity syncEditTypeEntity = new SyncEditTypeEntity();
syncEditTypeEntity.setCode(deleteBasicDataRequest.getDataType());
syncEditTypeEntity.setName(deleteBasicDataRequest.getName());
syncEditTypeService.insertType(syncEditTypeEntity);
}
public BaseResponse deleteById( DeleteRequest deleteRequest) {
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("删除成功");
}
public BaseResponse deleteCompanyProductRelevance( DeleteCompanyFileRequest deleteCompanyFileRequest) {
boolean b = udiRlSupService.deleteById(deleteCompanyFileRequest.getId());
return ResultVOUtils.success("成功");
}
public BaseResponse deleteBasicUnitMaintain( DeleteRequest deleteRequest) {
String id = deleteRequest.getId();
BasicCorpEntity basicUnitMaintainEntity = basicUnitMaintainService.selectById(id);
basicUnitMaintainService.deleteById(id);
return ResultVOUtils.success("删除成功");
}
public BaseResponse deleteBussinessType( DeleteRequest deleteRequest) {
// if (bindingResult.hasErrors()) {
// return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
// }
String id = deleteRequest.getId();
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.selectById(id);
//判断是否存在该单据类型单据
boolean isExitOrder = orderService.isExitByAction(bussinessTypeEntity.getAction());
if (isExitOrder) {
return ResultVOUtils.error(500, "已存在该类型扫码单据,无法删除!");
}
//判断是否被仓库绑定
boolean isExitUser = invBusUserService.isExitByAction(bussinessTypeEntity.getAction());
if (isExitUser) {
return ResultVOUtils.error(500, "该单据类型已被用户绑定,请先移除后删除!");
}
//判断是否被用户绑定
boolean isExitInv = warehouseBussinessTypeService.isExitByAction(bussinessTypeEntity.getAction());
if (isExitInv) {
return ResultVOUtils.error(500, "该单据类型已被仓库绑定,请先移除后删除!");
}
return basicBussinessTypeService.deleteBussinessType(id) == true ? ResultVOUtils.success("删除成功") : ResultVOUtils.error(500, "删除失败,系统繁忙");
}
}