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 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 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 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 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 ioStatOrderResponses = statOrderService.filterList(request); return ResultVOUtils.success(ioStatOrderResponses); } }