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