From 76c613ef7b2e917bb6f088e1bcc0754d3b5fad3a Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Wed, 20 Nov 2024 08:46:19 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=20=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=EF=BC=9A=E5=B7=A5=E4=BD=9C=E6=B5=81js=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E5=BC=95=E5=85=A5=E5=AE=A1=E6=89=B9=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E7=9B=B8=E5=85=B3=E5=AD=97=E6=AE=B5=EF=BC=9B=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=87=87=E8=B4=AD=E8=AE=A1=E5=88=92=E5=8D=95=E5=8F=B7?= =?UTF-8?q?=E9=9A=90=E8=97=8F=E9=83=A8=E5=88=86=E5=86=85=E5=AE=B9=EF=BC=9B?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=B3=E8=AF=B7=E5=AE=9E=E9=99=85=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=EF=BC=9B=E6=93=8D=E4=BD=9C=E6=A0=8F=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=20=E4=BD=9C=E5=BA=9F=E6=81=A2=E5=A4=8D=E3=80=81=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E3=80=81=E5=AE=A1=E6=89=B9=E5=8E=86=E5=8F=B2=E3=80=81?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9F=A5=E7=9C=8B=E6=96=B9=E6=B3=95=E5=92=8C?= =?UTF-8?q?=E6=8C=89=E9=92=AE=20=E9=87=87=E8=B4=ADVo=E7=B1=BB=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9EtaskStatus=E5=BD=93=E5=89=8D=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=AD=97=E6=AE=B5=20=E9=87=87=E8=B4=AD=E8=AE=A2?= =?UTF-8?q?=E5=8D=95Controller=E6=96=B0=E5=A2=9E=20=E5=8F=91=E8=B5=B7?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E6=8E=A5=E5=8F=A3=20=E9=87=87=E8=B4=AD=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=90=8E=E7=AB=AF=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E5=88=9B=E5=BB=BA=E5=AE=9E?= =?UTF-8?q?=E9=99=85=E5=80=92=E5=8F=99=E6=8E=92=E5=88=97=EF=BC=9B=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AE=A1=E6=A0=B8=E9=80=9A=E8=BF=87=E5=92=8C=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E6=8B=92=E7=BB=9D=E7=8A=B6=E6=80=81=EF=BC=9B=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AE=A1=E6=89=B9=E5=90=8E=E7=AB=AF=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=9B=E6=96=B0=E5=A2=9E=20=E5=90=AF=E5=8A=A8=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=AE=9E=E4=BE=8B=E5=90=8E=E7=AB=AF=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=9B=E6=96=B0=E5=A2=9E=E8=A7=92=E8=89=B2=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E6=96=B9=E6=B3=95=20=E6=8C=89=E7=85=A7?= =?UTF-8?q?=E4=B8=87=E6=9D=90=E6=96=B0=E5=A2=9E=E9=87=87=E8=B4=AD=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=AE=A1=E6=89=B9=E6=B5=81=E7=A8=8B=EF=BC=9A=E7=9B=AE?= =?UTF-8?q?=E5=89=8D=E6=B2=A1=E6=9C=89=E9=87=87=E8=B4=AD=E7=BB=8F=E7=90=86?= =?UTF-8?q?=E8=BF=99=E4=B8=AA=E8=81=8C=E4=BD=8D=EF=BC=8C=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E7=94=B1=E5=89=AF=E6=80=BB=E5=AE=A1=E6=89=B9=E5=8D=B3=E5=8F=AF?= =?UTF-8?q?=EF=BC=8C=E4=BB=A5=E5=90=8E=E6=9C=89=E6=AD=A4=E5=B2=97=E4=BD=8D?= =?UTF-8?q?=E4=B9=8B=E5=90=8E=EF=BC=8C=E7=AE=A1=E7=90=86=E5=91=98=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E4=BF=AE=E6=94=B9=E5=AE=A1=E6=89=B9=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E4=B8=BA=EF=BC=9A=E9=87=87=E8=B4=AD=E5=91=98-=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E7=BB=8F=E7=90=86-=E5=89=AF=E6=80=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PurchaseOrderController.java | 17 ++-- .../purchase/domain/PurchaseOrderVo.java | 14 ++++ .../service/IPurchaseOrderService.java | 8 +- .../impl/PurchaseOrderServiceImpl.java | 42 ++++++---- .../mapper/purchase/PurchaseOrderMapper.xml | 1 + .../purchase/purchaseOrder/purchaseOrder.html | 78 +++++++++++++++++++ 6 files changed, 124 insertions(+), 36 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseOrderController.java index b7e2c69b..9fd46716 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseOrderController.java @@ -93,7 +93,6 @@ public class PurchaseOrderController extends BaseController @ResponseBody public TableDataInfo list(PurchaseOrder purchaseOrder) { - // 采购角色只能看到自己创建的数据 startPage(); List list = purchaseOrderService.selectPurchaseOrderList(purchaseOrder); return getDataTable(list); @@ -101,7 +100,7 @@ public class PurchaseOrderController extends BaseController /** - * 导出全部采购订单子表列表 + * 导出全部采购订单列表 */ @RequiresPermissions("purchase:purchaseOrderChild:export") @Log(title = "采购订单子表", businessType = BusinessType.EXPORT) @@ -117,7 +116,7 @@ public class PurchaseOrderController extends BaseController /** - * 导出采购订单子表列表 + * 导出采购订单列表 */ @RequiresPermissions("purchase:purchaseOrderChild:export") @Log(title = "采购订单子表", businessType = BusinessType.EXPORT) @@ -209,17 +208,11 @@ public class PurchaseOrderController extends BaseController @PostMapping("/addPurchaseOrder") @ResponseBody public AjaxResult addPurchasePlanToPurchaseOrder(@RequestBody AddPurchaseOrder addPurchaseOrder) { -// purchaseOrder.setAuditStatus("0"); -// purchaseOrder.setUseStatus("0"); -// purchaseOrder.setDelFlag("0"); -// purchaseOrderService.submitApply(purchaseOrder); + // purchaseOrderService.insertPurchaseOrder(purchaseOrder); // purchaseOrderService.addPurchaseOrderPayable(purchaseOrder); - // 数据校验,确保前端传入数据格式正确 - // 执行主表插入操作 - - - return toAjax(purchaseOrderService.addPurchasePlanToPurchaseOrder(addPurchaseOrder)); + purchaseOrderService.submitApply(addPurchaseOrder); + return AjaxResult.success(); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseOrderVo.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseOrderVo.java index 2e4dd356..2effe766 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseOrderVo.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseOrderVo.java @@ -17,6 +17,10 @@ public class PurchaseOrderVo extends PurchaseOrder { private String taskId; /** 任务名称 */ private String taskName; + + // 当前状态 + private String taskStatus; + /** 办理时间 */ private Date doneTime; /** 创建人 */ @@ -104,12 +108,22 @@ public class PurchaseOrderVo extends PurchaseOrder { this.keyword = keyword; } + + public String getTaskStatus() { + return taskStatus; + } + + public void setTaskStatus(String taskStatus) { + this.taskStatus = taskStatus; + } + @Override public String toString() { return "PurchaseOrderVo{" + "applyUserName='" + applyUserName + '\'' + ", taskId='" + taskId + '\'' + ", taskName='" + taskName + '\'' + + ", taskStatus='" + taskStatus + '\'' + ", doneTime=" + doneTime + ", createUserName='" + createUserName + '\'' + ", suspendState='" + suspendState + '\'' + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java index cc56fd33..40052372 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java @@ -104,7 +104,7 @@ public interface IPurchaseOrderService Integer addPurchaseOrderPayable(PurchaseOrder purchaseOrder); - ProcessInstance submitApply(PurchaseOrder purchaseOrder); + ProcessInstance submitApply(AddPurchaseOrder addPurchaseOrder); @Transactional(rollbackFor = Exception.class) public ProcessInstance cancelPurchaseOrderById(Long id); @@ -122,10 +122,4 @@ public interface IPurchaseOrderService AjaxResult uploadSingleFile(MultipartFile file,String purchaseOrderCode); - /** - * 采购计划添加采购订单 - * */ - int addPurchasePlanToPurchaseOrder(AddPurchaseOrder addPurchaseOrder); - - } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java index 4589d900..f3fcaee8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java @@ -220,6 +220,12 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService } else { purchaseOrderVo.setTaskName("未启动"); } + purchaseOrderVo.setTaskStatus(purchaseOrderVo.getTaskName()); + if(purchaseOrderVo.getAuditStatus()!=null && purchaseOrderVo.getAuditStatus().equals("1")){ + purchaseOrderVo.setTaskStatus("审核通过"); + }else if(purchaseOrderVo.getAuditStatus()!=null && purchaseOrderVo.getAuditStatus().equals("2")){ + purchaseOrderVo.setTaskStatus("审核拒绝"); + } returnList.add(purchaseOrderVo); } returnList.setTotal(CollectionUtils.isEmpty(list) ? 0 : list.getTotal()); @@ -323,9 +329,7 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService /** * 采购计划添加采购订单 * */ - @Transactional(rollbackFor = Exception.class) - @Override - public int addPurchasePlanToPurchaseOrder(AddPurchaseOrder addPurchaseOrder) { + public int addPurchasePlanToPurchaseOrder(AddPurchaseOrder addPurchaseOrder,PurchaseOrder purchaseOrder) { String loginName = ShiroUtils.getLoginName(); PurchasePlanTwo purchasePlanTwo = addPurchaseOrder.getPurchasePlanTwo(); PurchasePlanOne purchasePlanOne = addPurchaseOrder.getPurchasePlanOne(); @@ -339,7 +343,6 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService throw new BusinessException("请填写本次采购数量"); } - PurchaseOrder purchaseOrder = new PurchaseOrder(); purchaseOrder.setPurchaseOrderCode(redisCache.generateBillNo("CG")); purchaseOrder.setPurchasePlanCode(purchasePlanOne.getPurchasePlanCodes()); purchaseOrder.setPaymentStatus("0"); @@ -367,11 +370,7 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService updatePurchasePlanByAddPurchaseOrder(addPurchaseOrder,purchasePlanChildList); buildPurchaseChild(purchasePlanSelectMaterialVoList, purchaseOrder); - int result = purchaseOrderMapper.insertPurchaseOrder(purchaseOrder); - if (result <= 0){ - throw new BusinessException("添加采购订单数据失败"); - } - return result; + return purchaseOrderMapper.insertPurchaseOrder(purchaseOrder); } //处理采购计划子表 @@ -750,13 +749,14 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService } @Transactional(rollbackFor = Exception.class) @Override - public ProcessInstance submitApply(PurchaseOrder purchaseOrder) { + public ProcessInstance submitApply(AddPurchaseOrder addPurchaseOrder) { + PurchaseOrder purchaseOrder = new PurchaseOrder(); + purchaseOrder.setAuditStatus("0"); + purchaseOrder.setUseStatus("0"); SysUser user = ShiroUtils.getSysUser(); purchaseOrder.setApplyUser(user.getLoginName()); purchaseOrder.setApplyTime(DateUtils.getNowDate()); - if(purchaseOrder.getPurchaseOrderId()==null) { - insertPurchaseOrder(purchaseOrder); - } + addPurchasePlanToPurchaseOrder(addPurchaseOrder,purchaseOrder); // 启动流程 String applyTitle = user.getUserName()+"发起了采购订单信息提交审批-"+DateUtils.dateTimeNow(); String instanceType = "submit"; @@ -993,9 +993,12 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService } + /** + * 启动流程实例 + * */ private ProcessInstance startProcessInstance(String applyTitle, String instanceType, PurchaseOrder purchaseOrder, SysUser user) { - Long materialId = purchaseOrder.getPurchaseOrderId(); - String businessKey = materialId.toString(); // 实体类 ID,作为流程的业务 key + Long purchaseOrderId = purchaseOrder.getPurchaseOrderId(); + String businessKey = purchaseOrderId.toString(); // 实体类 ID,作为流程的业务 key String key = "purchaseOrder"; Map variables = new HashMap<>(); // 构造authority传参 @@ -1010,14 +1013,19 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService return processInstance; } + /** + * 角色校验 + * */ private void buildAuthority(SysUser user, Map variables) { Set roleKeys = roleService.selectRoleKeys(user.getUserId()); + variables.put("cgjlExist",false); + // 角色不同审核人不同 if(roleKeys.contains("cgyRole")){ variables.put("authority",1); }else if(roleKeys.contains("cgjlRole")){ - variables.put("authority",2); - }else if(roleKeys.contains("cgzgRole")|| roleKeys.contains("admin")){ + variables.put("cgjlExist",true); + }else if(roleKeys.contains("admin")){ variables.put("authority",3); }else if(roleKeys.contains("fzjlRole")){ variables.put("authority",4); diff --git a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml index 600cd364..5b3c6b1d 100644 --- a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml @@ -59,6 +59,7 @@ and supplier_name like concat('%', #{supplierName}, '%') and create_time between #{params.beginCreateTime} and #{params.endCreateTime} + order by create_time desc