From 5f027ee1c6e4131584d8e78b3c7b9c2d7de55c18 Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Tue, 28 May 2024 13:59:54 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=8D=95=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PmsPurchasebackBillMapper.xml | 1 + .../PmsPurchasebackBillQuery.java | 3 + .../PmsPurchasebackBillService.java | 47 ++++- .../PmsPurchaseBillDetailsVo.java | 5 +- .../pmspurchasebill/PmsPurchaseBillDto.java | 5 +- .../pmspurchasebill/PmsPurchaseBillMapper.xml | 1 + .../pmspurchasebill/PmsPurchaseBillQuery.java | 3 + .../PmsPurchaseBillService.java | 177 +++++++++++++----- .../wmsansbilldetail/WmsAnsBillDetail.java | 2 +- 9 files changed, 188 insertions(+), 56 deletions(-) diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml index dd516d2e9e..f7cd3cdd1b 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml @@ -27,6 +27,7 @@ ON ppb.`sourceBillSid` = pb.`sid` LEFT JOIN pms_purchaseback_detail ppd ON ppb.`sid` = ppd.`billSid` + LEFT JOIN anrui_portal.sys_organization as s ON ppb.deptSid = s.sid ${ew.sqlSegment} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillQuery.java index 68342b5fbd..caa546d39f 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillQuery.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillQuery.java @@ -80,4 +80,7 @@ public class PmsPurchasebackBillQuery implements Query { @ApiModelProperty("组织全路径") private String orgPath; + private String userSid; + @ApiModelProperty("菜单url") + private String menuUrl; } diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillService.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillService.java index 0be271bba5..079a98a457 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillService.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillService.java @@ -37,6 +37,7 @@ import com.yxt.pms.biz.pms.pmspurchasebackdetail.PmsPurchasebackDetailDto; import com.yxt.pms.biz.pms.pmspurchasebackdetail.PmsPurchasebackDetailService; import com.yxt.pms.biz.pms.pmspurchasebill.PmsPurchaseBill; import com.yxt.pms.biz.pms.pmspurchasebill.PmsPurchaseBillService; +import com.yxt.pms.biz.pms.pmspurchasebill.PmsPurchaseBillVo; import com.yxt.pms.biz.pms.pmspurchasebill.PmsPurchaseChoiceBillDetailsVo; import com.yxt.pms.feign.base.Rule; import com.yxt.pms.feign.flowable.flow.*; @@ -51,6 +52,8 @@ import com.yxt.pms.feign.message.MessageFlowableQuery; import com.yxt.pms.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.pms.feign.portal.sysorganization.SysOrganizationVo; import com.yxt.pms.feign.portal.sysstafforg.SysStaffOrgFeign; +import com.yxt.pms.feign.privilege.PrivilegeQuery; +import com.yxt.pms.feign.sysuser.SysUserFeign; import org.apache.commons.lang3.StringUtils; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; @@ -96,13 +99,51 @@ public class PmsPurchasebackBillService extends MybatisBaseService listPageVo(PagerQuery pq) { PmsPurchasebackBillQuery query = pq.getParams(); QueryWrapper qw = new QueryWrapper<>(); - String orgPath = query.getOrgPath(); - String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); - qw.eq("ppb.createOrgSid", createOrgSid); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("ppb.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } if (StringUtils.isNotBlank(query.getCreateOrgName())) { qw.like("ppb.createOrgName", query.getCreateOrgName()); } diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDetailsVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDetailsVo.java index 8ee4273a2e..cf8a310d90 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDetailsVo.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDetailsVo.java @@ -109,10 +109,7 @@ public class PmsPurchaseBillDetailsVo implements Vo { @ApiModelProperty("采购员姓名") private String purchaserName; @ApiModelProperty("预计到货日期") - @JsonFormat( - pattern = "yyyy-MM-dd HH:mm:ss", - timezone = "GMT+8" - ) + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") private Date deliveryDate; @ApiModelProperty("运费") private BigDecimal freight; diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDto.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDto.java index 3bd23f9b65..ad82d28c82 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDto.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDto.java @@ -99,10 +99,7 @@ public class PmsPurchaseBillDto implements Dto { @ApiModelProperty("采购员姓名") private String purchaserName; @ApiModelProperty("预计到货日期") - @JsonFormat( - pattern = "yyyy-MM-dd HH:mm:ss", - timezone = "GMT+8" - ) + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") private Date deliveryDate; @ApiModelProperty("运费") private BigDecimal freight; diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml index 09f5e02245..0203a5d4aa 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml @@ -27,6 +27,7 @@ ON ppbi.`billSid` = ppb.`sid` LEFT JOIN pms_purchase_bill_detail ppbd ON ppbd.`billSid` = ppb.`sid` + LEFT JOIN anrui_portal.sys_organization as s ON ppb.deptSid = s.sid ${ew.sqlSegment} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillQuery.java index 2279910ff9..9b5ab7e6dc 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillQuery.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillQuery.java @@ -82,4 +82,7 @@ public class PmsPurchaseBillQuery implements Query { @ApiModelProperty("组织全路径") private String orgPath; + private String userSid; + @ApiModelProperty("菜单url") + private String menuUrl; } diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java index afd1ba7a3b..2f8d185d88 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java @@ -31,6 +31,7 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.yxt.common.core.result.ResultBean; import com.yxt.pms.biz.pms.pmspurchasebackbill.PmsPurchasebackBillService; import com.yxt.pms.biz.pms.pmspurchasebackdetail.PmsPurchasebackDetailService; @@ -59,6 +60,8 @@ import com.yxt.pms.feign.message.MessageFlowableQuery; import com.yxt.pms.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.pms.feign.portal.sysorganization.SysOrganizationVo; import com.yxt.pms.feign.portal.sysstafforg.SysStaffOrgFeign; +import com.yxt.pms.feign.privilege.PrivilegeQuery; +import com.yxt.pms.feign.sysuser.SysUserFeign; import com.yxt.pms.feign.wms.wmsansbill.WmsAnsBillDetailDto; import com.yxt.pms.feign.wms.wmsansbill.WmsAnsBillDto; import com.yxt.pms.feign.wms.wmsansbill.WmsAnsBillFeign; @@ -68,11 +71,13 @@ import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.vo.PagerVo; +import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.*; +import java.util.concurrent.*; import java.util.stream.Collectors; /** @@ -117,13 +122,52 @@ public class PmsPurchaseBillService extends MybatisBaseService listPageVo(PagerQuery pq) { PmsPurchaseBillQuery query = pq.getParams(); QueryWrapper qw = new QueryWrapper<>(); - String orgPath = query.getOrgPath(); - String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); - qw.eq("ppb.createOrgSid", createOrgSid); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("ppb.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } if (StringUtils.isNotBlank(query.getCreateOrgName())) { qw.like("ppb.createOrgName", query.getCreateOrgName()); } @@ -366,16 +410,31 @@ public class PmsPurchaseBillService extends MybatisBaseService(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + PmsPurchaseBill purchaseBill = pmsPurchaseBill; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("采购单申请"); + messageFlowableQuery.setMsgContent(purchaseBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("采购单申请"); + messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 return voResultBean; } if (r == 2) { @@ -494,18 +553,33 @@ public class PmsPurchaseBillService extends MybatisBaseService(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + PmsPurchaseBill purchaseBill = pmsPurchaseBill; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + ufVo.setProcDefId(purchaseBill.getProcDefId()); + ufVo.setProcInsId(purchaseBill.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("采购单申请"); + messageFlowableQuery.setMsgContent(purchaseBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("采购单申请"); + messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 } return rb.success().setData(resultBean.getData()); } else { @@ -568,26 +642,41 @@ public class PmsPurchaseBillService extends MybatisBaseService> listResultBean = flowTaskFeign.getLatestTasks(procId); - String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); - List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); - if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(pmsPurchaseBill.getCreateBySid())) { - messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); - } else { - messageFlowableQuery.setMsgContent(pmsPurchaseBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + PmsPurchaseBill purchaseBill = pmsPurchaseBill; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = purchaseBill.getProcInstId(); + ufVo.setProcInsId(procId); + ufVo.setProcDefId(purchaseBill.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("采购单申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(purchaseBill.getCreateBySid())) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(purchaseBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + messageFlowableQuery.setMsgTitle("采购单申请"); + messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); } - messageFlowableQuery.setMsgTitle("采购单申请"); - messageFeign.pushMessage(messageFlowableQuery); + //==================================添加线程 return rb.success(); } } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetail.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetail.java index 27ddb3a58e..b8b58f6287 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetail.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetail.java @@ -31,7 +31,7 @@ public class WmsAnsBillDetail extends BaseEntity { @ApiModelProperty("计量单位") private String unit; @ApiModelProperty("单位成本(采购价)") - private String cost; + private BigDecimal cost; @ApiModelProperty("预约数量(采购订单数量)") private String orderCount; @ApiModelProperty("待入库数量-根据收货单计算")