From f3f717cf175044dec2eaa5ae28893dcd046f774d Mon Sep 17 00:00:00 2001 From: anthonywj Date: Fri, 21 Apr 2023 18:06:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A7=94=E6=89=98=E9=AA=8C?= =?UTF-8?q?=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoOrderReviewController.java | 30 ++++++++++++++++++- .../glxp/api/http/sync/SpGetHttpClient.java | 30 +++++++++++++------ .../api/service/auth/InvBusUserService.java | 6 +++- .../auth/impl/InvBusUserServiceImpl.java | 10 +++++-- .../glxp/api/service/sync/HeartService.java | 12 ++------ 5 files changed, 66 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java index 8cd2a7cd..b5743ac3 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -30,6 +30,7 @@ import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.sync.SpsSyncOrderResponse; import com.glxp.api.service.auth.AuthAdminService; +import com.glxp.api.service.auth.InvBusUserService; import com.glxp.api.service.basic.EntrustReceService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; @@ -48,6 +49,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.awt.*; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -435,6 +437,11 @@ public class IoOrderReviewController extends BaseController { if (StrUtil.isEmpty(reviewSpmsRequest.getBillNo())) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } + Long userId = getUserId(); + String errMsg = checkReviewAuth(billNo, userId + ""); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } AcceptOrderResponse acceptOrderEntity = new AcceptOrderResponse(); acceptOrderEntity.setBillNo(billNo); List datas = (List) redisUtil.get(ConstantStatus.REDIS_BILLNO + billNo); @@ -456,7 +463,7 @@ public class IoOrderReviewController extends BaseController { acceptOrderEntity.setExitAccept(false); } else { //获取自助平台待审核单据,并插入到数据库 - BaseResponse baseResponse = spGetHttp.getReviewOrder(reviewSpmsRequest); + BaseResponse baseResponse = spGetHttp.getReviewOrder(reviewSpmsRequest, userId + ""); if (baseResponse.getCode() == 20000) { SpsSyncOrderResponse spsSyncOrderResponse = baseResponse.getData(); List orderEntities = spsSyncOrderResponse.getOrderEntities(); @@ -490,5 +497,26 @@ public class IoOrderReviewController extends BaseController { return ResultVOUtils.success(acceptOrderEntity); } + @Resource + InvBusUserService invBusUserService; + + //校验用户是否验收权限 + private String checkReviewAuth(String orderId, String userId) { + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); + if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_REW || orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) { + return "单据非未验收状态,无法审核!"; + } + if (!invBusUserService.exitBus(userId, orderEntity.getAction())) { + EntrustReceEntity entrustReceEntity = entrustReceService.findByUnique(orderEntity.getAction(), Long.parseLong(userId)); + if (entrustReceEntity == null) { + return "无验收权限!"; + } + } else { + return "无验收权限!"; + } + + + return null; + } } diff --git a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java index 24cab3b5..e678b5b3 100644 --- a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java +++ b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java @@ -1,5 +1,8 @@ package com.glxp.api.http.sync; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; @@ -10,6 +13,7 @@ import com.glxp.api.entity.basic.ProductInfoEntity; import com.glxp.api.entity.sync.BasicExportStatusEntity; import com.glxp.api.entity.sync.IOOrderStatusEntity; import com.glxp.api.entity.system.SyncDataSetEntity; +import com.glxp.api.idc.service.FileService; import com.glxp.api.req.basic.ProductInfoFilterRequest; import com.glxp.api.req.inout.ReviewFinishRequest; import com.glxp.api.req.inout.ReviewSpmsRequest; @@ -106,9 +110,12 @@ public class SpGetHttpClient { //获取自助平台验收单据---直连接口 - public BaseResponse getReviewOrder(ReviewSpmsRequest reviewSpmsRequest) { + public BaseResponse getReviewOrder(ReviewSpmsRequest reviewSpmsRequest, String userId) { String json = JSONUtil.toJsonStr(reviewSpmsRequest); - String result = okHttpCli.doPostJson(getIpUrl() + "/directToSpms" + "/udiwms/order/getReviews", json, buildHeader()); + List header = (List) Convert.toList(buildHeader()); + header.add("ADMIN_ID"); + header.add(userId); + String result = okHttpCli.doPostJson(getIpUrl() + "/directToSpms" + "/udiwms/order/getReviews", json, Convert.toStrArray(header)); BaseResponse response = JSONObject.parseObject(result, new TypeReference>() { }); @@ -372,12 +379,17 @@ public class SpGetHttpClient { * @param fileNameList * @return */ - public BaseResponse postTemplateFile(List> fileNameList) { - String json = JSONUtil.toJsonStr(fileNameList); - String result = okHttpCli.doPostJson(getIpUrl() + "/spssync/file/download", json, buildHeader()); - BaseResponse response = - JSONObject.parseObject(result, new TypeReference>() { - }); - return response; + @Resource + FileService fileService; + + public BaseResponse postTemplateFile(List fileNameList) { + return fileService.upload(fileNameList); + +// String json = JSONUtil.toJsonStr(fileNameList); +// String result = okHttpCli.doPostJson(getIpUrl() + "/spssync/file/download", json, buildHeader()); +// BaseResponse response = +// JSONObject.parseObject(result, new TypeReference>() { +// }); +// return response; } } diff --git a/src/main/java/com/glxp/api/service/auth/InvBusUserService.java b/src/main/java/com/glxp/api/service/auth/InvBusUserService.java index 05b82be2..a4b36c81 100644 --- a/src/main/java/com/glxp/api/service/auth/InvBusUserService.java +++ b/src/main/java/com/glxp/api/service/auth/InvBusUserService.java @@ -5,6 +5,7 @@ import com.glxp.api.entity.auth.InvBusUserEntity; import com.glxp.api.entity.auth.WarehouseBussinessTypeEntity; import com.glxp.api.req.auth.FilterInvBusUserRequest; import com.glxp.api.res.auth.InvBusUserResponse; + import java.util.List; public interface InvBusUserService { @@ -24,6 +25,9 @@ public interface InvBusUserService { boolean deleteById(String id); boolean deleteByUnion(String userId, String subInvCode); - boolean deleteByscAction( String subInvCode, List selectedCodes); + + boolean deleteByscAction(String subInvCode, List selectedCodes); + + boolean exitBus(String userId, String action); } diff --git a/src/main/java/com/glxp/api/service/auth/impl/InvBusUserServiceImpl.java b/src/main/java/com/glxp/api/service/auth/impl/InvBusUserServiceImpl.java index b4c43889..f04a7dd8 100644 --- a/src/main/java/com/glxp/api/service/auth/impl/InvBusUserServiceImpl.java +++ b/src/main/java/com/glxp/api/service/auth/impl/InvBusUserServiceImpl.java @@ -1,6 +1,7 @@ package com.glxp.api.service.auth.impl; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.auth.InvBusUserDao; import com.glxp.api.entity.auth.InvBusUserEntity; @@ -98,10 +99,15 @@ public class InvBusUserServiceImpl implements InvBusUserService { } @Override - public boolean deleteByscAction(String subInvCode,List selectedCodes) { + public boolean deleteByscAction(String subInvCode, List selectedCodes) { if (CollectionUtils.isEmpty(selectedCodes) || StrUtil.isEmpty(subInvCode)) { return false; } - return invBusUserDao.deleteByscAction(subInvCode,selectedCodes); + return invBusUserDao.deleteByscAction(subInvCode, selectedCodes); + } + + @Override + public boolean exitBus(String userId, String action) { + return invBusUserDao.exists(new QueryWrapper().eq("userId", userId).eq("action", action)); } } diff --git a/src/main/java/com/glxp/api/service/sync/HeartService.java b/src/main/java/com/glxp/api/service/sync/HeartService.java index 7177b91d..9986294e 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -1338,16 +1338,10 @@ public class HeartService { //若模板记录不为空,则将模板文件同步过去 String uploadFileLog = ""; if (CollUtil.isNotEmpty(spsSyncSysSettingResponse.getSystemPDFTemplateEntities())) { - List> list = new ArrayList<>(spsSyncSysSettingResponse.getSystemPDFTemplateEntities().size() * 2); +// List> list = new ArrayList<>(spsSyncSysSettingResponse.getSystemPDFTemplateEntities().size() * 2); + List list = new ArrayList<>(); spsSyncSysSettingResponse.getSystemPDFTemplateEntities().forEach(systemPDFTemplateEntity -> { - //分切文件并封装参数 - Map pathFileMap = new HashMap<>(1); - pathFileMap.put("fileName", StrUtil.split(systemPDFTemplateEntity.getPath(), "template/").get(1)); - list.add(pathFileMap); - - Map jrxmlPathFileMap = new HashMap<>(1); - jrxmlPathFileMap.put("fileName", StrUtil.split(systemPDFTemplateEntity.getJrxmlPath(), "template/").get(1)); - list.add(jrxmlPathFileMap); + list.add(systemPDFTemplateEntity.getPath()); }); BaseResponse response = spGetHttp.postTemplateFile(list);