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.
207 lines
8.8 KiB
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, "删除失败,系统繁忙");
|
|
}
|
|
|
|
|
|
}
|