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-wms-java/src/main/java/com/glxp/api/service/sync/SocketMsgService.java

241 lines
11 KiB
Java

package com.glxp.api.service.sync;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.SocketMsgType;
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.inout.IoOrderEntity;
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.http.sync.SpGetHttpClient;
import com.glxp.api.req.basic.BasicDataRequest;
import com.glxp.api.req.basic.DeleteBasicDataRequest;
import com.glxp.api.req.inout.FilterStatDataRequest;
import com.glxp.api.req.system.DeleteCompanyFileRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.inout.IoStatOrderResponse;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.inout.IoStatOrderService;
import com.glxp.api.service.inout.impl.IoCodeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
@Service
@Slf4j
public class SocketMsgService {
@Value("${SPMS_WEBSOCKET_TOKEN}")
String token;
@Resource
SpGetHttpClient spGetHttpClient;
@Async
public void dealNoticeMsg(SocketMsgEntity socketMsgEntity) {
if (socketMsgEntity != null && StrUtil.isNotEmpty(socketMsgEntity.getType())) {
Map<String, Object> object = null;
BasicDataRequest basicDataRequest = null;
BaseResponse baseResponse = null;
switch (socketMsgEntity.getType()) {
case SocketMsgType.TASK_INVOICE_CONFIRM:
invoiceConfirm(socketMsgEntity);
break;
case SocketMsgType.BASIC_DATA_DELETE:
String content = String.valueOf(socketMsgEntity.getContent());
object = JSON.parseObject(content, Map.class);
basicDataRequest = JSON.parseObject(content, BasicDataRequest.class);
baseResponse = deleteById(basicDataRequest.getDeleteRequest());
//插入日志
insertLog(basicDataRequest.getDeleteBasicDataRequest(), baseResponse);
insertType(basicDataRequest.getDeleteBasicDataRequest());
break;
case SocketMsgType.BASIC_MANAGE_DELETE:
object = JSON.parseObject(String.valueOf(socketMsgEntity.getContent()), Map.class);
basicDataRequest = JSON.parseObject(String.valueOf(socketMsgEntity.getContent()), BasicDataRequest.class);
baseResponse = deleteCompanyProductRelevance(basicDataRequest.getDeleteCompanyFileRequest());
//插入日志
insertLog(basicDataRequest.getDeleteBasicDataRequest(), baseResponse);
insertType(basicDataRequest.getDeleteBasicDataRequest());
break;
case SocketMsgType.BASIC_CORP_MAINTAIN_DELETE:
object = JSON.parseObject(String.valueOf(socketMsgEntity.getContent()), Map.class);
basicDataRequest = JSON.parseObject(String.valueOf(socketMsgEntity.getContent()), BasicDataRequest.class);
baseResponse = deleteBasicUnitMaintain(basicDataRequest.getDeleteRequest());
//插入日志
insertLog(basicDataRequest.getDeleteBasicDataRequest(), baseResponse);
insertType(basicDataRequest.getDeleteBasicDataRequest());
break;
case SocketMsgType.BASIC_BUSINESS_TYPE_DELETE:
object = JSON.parseObject(String.valueOf(socketMsgEntity.getContent()), Map.class);
basicDataRequest = JSON.parseObject(String.valueOf(socketMsgEntity.getContent()), BasicDataRequest.class);
baseResponse = deleteBussinessType(basicDataRequest.getDeleteRequest());
//插入日志
insertLog(basicDataRequest.getDeleteBasicDataRequest(), baseResponse);
insertType(basicDataRequest.getDeleteBasicDataRequest());
break;
case SocketMsgType.DEV_TASK_DEL:
// basicDataRequest = JSON.parseObject(String.valueOf(socketMsgEntity.getContent()), BasicDataRequest.class);
// baseResponse = deleteBussinessType(basicDataRequest.getDeleteRequest());
// insertLog(basicDataRequest.getDeleteBasicDataRequest(), baseResponse);
// insertType(basicDataRequest.getDeleteBasicDataRequest());
break;
default:
break;
}
}
}
@Resource
IoOrderService orderService;
//发票确认
public void invoiceConfirm(SocketMsgEntity socketMsgEntity) {
String billNo = (String) socketMsgEntity.getContent();
BaseResponse<IoOrderEntity> baseResponse = spGetHttpClient.getOrderByBillNo(billNo);
if (baseResponse != null && baseResponse.getCode() == 20000) {
IoOrderEntity orderEntity = baseResponse.getData();
IoOrderEntity updateEntity = new IoOrderEntity();
updateEntity.setBillNo(orderEntity.getBillNo());
updateEntity.setCheckStatus(orderEntity.getCheckStatus());
orderService.updateByBillNo(updateEntity);
}
}
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
IoCodeService codeService;
@Resource
CompanyProductRelevanceService companyProductRelevanceService;
@Resource
UdiProductService udiProductService;
@Resource
UdiRlSupService udiRlSupService;
@Resource
BasicCorpService basicUnitMaintainService;
@Resource
private IBasicBussinessTypeService basicBussinessTypeService;
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);
return basicBussinessTypeService.deleteBussinessType(id) == true ? ResultVOUtils.success("删除成功") : ResultVOUtils.error(500, "删除失败,系统繁忙");
}
@Resource
SyncEditLogService syncEditLogService;
@Resource
SyncEditTypeService syncEditTypeService;
public void insertLog(DeleteBasicDataRequest deleteBasicDataRequest, BaseResponse response) {
SyncEditLogEntity syncEditLogEntity = new SyncEditLogEntity();
syncEditLogEntity.setRecordCode(deleteBasicDataRequest.getRecordCode());
syncEditLogEntity.setOperType(2);
syncEditLogEntity.setDataType(deleteBasicDataRequest.getDataType());
syncEditLogEntity.setParam(deleteBasicDataRequest.getParam());
syncEditLogEntity.setJsonResult(response.getMessage());
syncEditLogEntity.setDirectType(2);
syncEditLogEntity.setOperUser(deleteBasicDataRequest.getUserId());
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);
}
// if (message.contains(SocketMsgType.STAT_DATA)) {
// cn.hutool.json.JSONObject obj = JSONUtil.parseObj(message);
// String content = obj.getStr("content");
// cn.hutool.json.JSONObject obj1 = JSONUtil.parseObj(content);
// log.error("zaici zhuanhuan :{}",obj1);
// FilterStatDataRequest request = JSONUtil.toBean(obj1.getStr("content"), FilterStatDataRequest.class);
// log.error("hhh:{}",request);
// List<IoStatOrderResponse> ioStatOrderResponses = statOrderService.filterList(request);
// log.error("zuizhong de shujv ",ioStatOrderResponses);
// client.sendMessage(ioStatOrderResponses.toString());
// }
@Resource
IoStatOrderService statOrderService;
public BaseResponse getStatData(String socketMsgEntity){
cn.hutool.json.JSONObject obj = JSONUtil.parseObj(socketMsgEntity);
String content = obj.getStr("content");
cn.hutool.json.JSONObject obj1 = JSONUtil.parseObj(content);
FilterStatDataRequest request = JSONUtil.toBean(content, FilterStatDataRequest.class);
List<IoStatOrderResponse> ioStatOrderResponses = statOrderService.filterList(request);
return ResultVOUtils.success(ioStatOrderResponses);
}
}