diff --git a/oms_web/oms_vue/src/api/sip/purchaseorder.js b/oms_web/oms_vue/src/api/sip/purchaseorder.js index 30fe1cc2..7ba33668 100644 --- a/oms_web/oms_vue/src/api/sip/purchaseorder.js +++ b/oms_web/oms_vue/src/api/sip/purchaseorder.js @@ -49,7 +49,8 @@ export function applyPurchaseorder(data) { return request({ url: '/sip/purchaseorder/apply', method: 'put', - data: data + data: data, + needLoading: true }) } @@ -69,7 +70,7 @@ export function getPurchaseOrderHistoryDetail(id) { }) } -// 删除采购单主表 +// 撤回采购订单 export function delPurchaseorder(id) { return request({ url: '/sip/purchaseorder/' + id, @@ -77,6 +78,21 @@ export function delPurchaseorder(id) { }) } +// 发起供应商确认 +export function vendorConfirmStatus(data) { + return request({ + url: '/sip/purchaseorder/vendorConfirmStatus', + method: 'put', + data:data + }) +} +export function recallPurchaseorder(id) { + return request({ + url: '/sip/purchaseorder/recall/' + id, + method: 'put' + }) +} + // 查询已审批采购单主表列表 export function listApprovedPurchaseorder(query) { return request({ diff --git a/oms_web/oms_vue/src/views/approve/purchaase/approve/index.vue b/oms_web/oms_vue/src/views/approve/purchaase/approve/index.vue index 505e3e89..2008e917 100644 --- a/oms_web/oms_vue/src/views/approve/purchaase/approve/index.vue +++ b/oms_web/oms_vue/src/views/approve/purchaase/approve/index.vue @@ -71,6 +71,7 @@

{{ log.approveOpinion }}

操作人: {{ log.approveUserName }} ({{ log.roleName }})

+

接收人: {{ log.nextAllApproveUserName }}

审批状态: {{ getStatusText(log.approveStatus) }}

diff --git a/oms_web/oms_vue/src/views/approve/purchaase/approved/index.vue b/oms_web/oms_vue/src/views/approve/purchaase/approved/index.vue index aec41abb..fcf92d16 100644 --- a/oms_web/oms_vue/src/views/approve/purchaase/approved/index.vue +++ b/oms_web/oms_vue/src/views/approve/purchaase/approved/index.vue @@ -80,6 +80,7 @@

{{ log.approveOpinion }}

操作人: {{ log.approveUserName }} ({{ log.roleName }})

+

接收人: {{ log.nextAllApproveUserName }}

审批状态: {{ getStatusText(log.approveStatus) }}

diff --git a/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetail.vue b/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetail.vue index 0576cd45..dcdbb5ac 100644 --- a/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetail.vue +++ b/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetail.vue @@ -76,6 +76,9 @@ {{ form.purchaserMobile }} + + {{ form.purchaserMobile }} + @@ -238,7 +241,7 @@ export default { status: 0, approveStatus: 0, approveNode: null, - confirmStatus: 0, + confirmStatus: null, omsPurchaseOrderItemList: [ { productType: null, @@ -464,7 +467,7 @@ export default { status: 0, approveStatus: 0, approveNode: null, - confirmStatus: 0, + confirmStatus: null, omsPurchaseOrderItemList: [ { productType: null, diff --git a/oms_web/oms_vue/src/views/purchaseorder/index.vue b/oms_web/oms_vue/src/views/purchaseorder/index.vue index 6a809152..a6d9de3a 100644 --- a/oms_web/oms_vue/src/views/purchaseorder/index.vue +++ b/oms_web/oms_vue/src/views/purchaseorder/index.vue @@ -148,7 +148,7 @@ >删除 查看详情 + + 发起供应商确认 + + 撤回 + @@ -181,6 +200,28 @@ + + + + + + + + + + + + + { - let form = {...row}; - form.approveStatus = '1'; // 设置审批状态为 1 (审批中) - return applyPurchaseorder(form); - }).then(() => { - this.getList(); - this.$modal.msgSuccess("申请采购成功"); - }).catch(() => { - }); + this.currentApplyingOrder = row; // 保存当前订单数据 + this.selectedFlowType = null; // 重置选定的流程类型 + this.openFlowTypeDialog = true; // 打开流程类型选择对话框 }, /** 查看详情按钮操作 */ handleViewDetails(row) { @@ -410,6 +450,53 @@ export default { this.showHistoryDetailDrawer = true; this.showDetailDrawer = false; // 关闭当前详情抽屉 }); + }, + /** 提交申请采购(带流程类型) */ + submitApplyWithFlowType() { + this.$refs.flowTypeForm.validate(valid => { + if (valid) { + let form = {...this.currentApplyingOrder}; + form.approveStatus = '1'; // 设置审批状态为 1 (审批中) + form.flowType = this.selectedFlowType; // 添加流程类型 + applyPurchaseorder(form).then(() => { + this.openFlowTypeDialog = false; // 关闭对话框 + this.getList(); + this.$modal.msgSuccess("申请采购成功"); + }).catch(() => { + this.openFlowTypeDialog = false; // 关闭对话框 + }); + } + }); + }, + /** 撤回按钮操作 */ + handleRecall(row) { + this.$modal.confirm('是否确认撤回采购订单编号为"' + row.purchaseNo + '"的数据项?').then(() => { + recallPurchaseorder(row.id).then(() => { + this.getList(); + this.$modal.msgSuccess("撤回成功"); + }); + this.getList(); // 刷新列表以反映状态变化 + }).catch(() => { + }); + }, + /** 发起供应商确认操作 */ + handleInitiateVendorConfirmation(row) { + this.$modal.confirm('是否确认发起供应商确认编号为"' + row.purchaseNo + '"的数据项?', '警告', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + // 调用后端发起供应商确认接口 + let data = { + id: row.id, + confirmStatus: '0' // 设置确认状态为 1 (待确认) + }; + vendorConfirmStatus(data).then(() => { + this.getList(); + this.$modal.msgSuccess("发起供应商确认成功"); + }); + }).catch(() => { + }); } } }; diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java index e2383391..d37e27b8 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java @@ -119,6 +119,17 @@ public class OmsPurchaseOrderController extends BaseController return toAjax(omsPurchaseOrderService.updateOmsPurchaseOrder(omsPurchaseOrder)); } + /** + * 发起供应商确认 + */ + @RequiresPermissions("sip:purchaseorder:edit") + @Log(title = "采购单主表", businessType = BusinessType.UPDATE) + @PutMapping("/vendorConfirmStatus") + public AjaxResult vendorConfirmStatus(@RequestBody OmsPurchaseOrder omsPurchaseOrder) + { + return toAjax(omsPurchaseOrderService.vendorConfirmStatus(omsPurchaseOrder)); + } + /** * 申请采购单主表 */ @@ -150,6 +161,17 @@ public class OmsPurchaseOrderController extends BaseController return success(omsPurchaseOrderHistoryService.selectOmsPurchaseOrderHistoryById(id)); } + /** + * 撤回采购单主表 + */ + @RequiresPermissions("sip:purchaseorder:recall") + @Log(title = "采购单主表", businessType = BusinessType.UPDATE) + @PutMapping("/recall/{id}") + public AjaxResult recall(@PathVariable("id") Long id) + { + return toAjax(omsPurchaseOrderService.recallPurchaseOrder(id)); + } + /** * 删除采购单主表 */ diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java index f1f5db5b..6acf4278 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java @@ -82,8 +82,11 @@ public class OmsPurchaseOrder extends BaseEntity /** 当前审批节点 */ private String approveNode; - /** 确认状态(0待确认 1已确认) */ - private Integer confirmStatus; + /** 确认状态(待审批、已确认、或空) */ + private String confirmStatus; + + /** 流程类型(online线上 offline线下) */ + private String flowType; /** 删除标志(0正常 1删除) */ private Integer delFlag; diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrderHistory.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrderHistory.java index f1a04be3..01a80c43 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrderHistory.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrderHistory.java @@ -81,10 +81,11 @@ public class OmsPurchaseOrderHistory extends BaseEntity private String approveNode; /** 确认状态(0待确认 1已确认) */ - private Integer confirmStatus; + private String confirmStatus; /** 删除标志(0正常 1删除) */ private Integer delFlag; + private String flowType; /** 版本号 */ private Integer version; diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java index 8b6dea4c..b7c1ce8d 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java @@ -54,7 +54,7 @@ public interface IOmsPurchaseOrderService /** * 批量删除采购单主表 - * + * * @param ids 需要删除的采购单主表主键集合 * @return 结果 */ @@ -62,12 +62,28 @@ public interface IOmsPurchaseOrderService /** * 删除采购单主表信息 - * + * * @param id 采购单主表主键 * @return 结果 */ public int deleteOmsPurchaseOrderById(Long id); + /** + * 发起供应商确认 + * + * @param omsPurchaseOrder 采购单主表 + * @return 结果 + */ + public int vendorConfirmStatus(OmsPurchaseOrder omsPurchaseOrder); + + /** + * 撤回采购订单 + * + * @param id 采购单主表主键 + * @return 结果 + */ + public int recallPurchaseOrder(Long id); + List listApprove(OmsPurchaseOrder omsPurchaseOrder); List listApproved(OmsPurchaseOrder omsPurchaseOrder); diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java index f4a10c55..591f7b24 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java @@ -298,6 +298,49 @@ public class OmsPurchaseOrderServiceImpl implements IOmsPurchaseOrderService, To } } + /** + * 发起供应商确认 + * + * @param omsPurchaseOrder 采购单主表 + * @return 结果 + */ + @Transactional + @Override + public int vendorConfirmStatus(OmsPurchaseOrder omsPurchaseOrder) { + omsPurchaseOrder.setUpdateTime(DateUtils.getNowDate()); + return omsPurchaseOrderMapper.updateOmsPurchaseOrder(omsPurchaseOrder); + + } + + /** + * 撤回采购订单 + * + * @param id 采购单主表主键 + * @return 结果 + */ + @Transactional + @Override + public int recallPurchaseOrder(Long id) { + OmsPurchaseOrder omsPurchaseOrder = omsPurchaseOrderMapper.selectOmsPurchaseOrderById(id); + if (omsPurchaseOrder == null) { + throw new ServiceException("采购订单不存在"); + } + // 只有审批状态为“已通过”(2) 且 供应商确认状态为空或 null 时才能撤回 + if (ApproveStatusEnum.APPROVE_COMPLETE.getCode().equals(omsPurchaseOrder.getApproveStatus()) && + (StringUtils.isEmpty(omsPurchaseOrder.getConfirmStatus()) || "".equals(omsPurchaseOrder.getConfirmStatus()))) { + // 保存历史记录 + saveOrderHistory(omsPurchaseOrder); + + omsPurchaseOrder.setApproveStatus(ApproveStatusEnum.WAIT_COMMIT.getCode()); // 设置为待审批(草稿) + omsPurchaseOrder.setApproveTime(null); // 清空审批时间 + omsPurchaseOrder.setUpdateTime(DateUtils.getNowDate()); + omsPurchaseOrder.setVersion(omsPurchaseOrder.getVersion() + 1); // 版本号 +1 + return omsPurchaseOrderMapper.updateOmsPurchaseOrder(omsPurchaseOrder); + } else { + throw new ServiceException("当前订单状态不允许撤回"); + } + } + @Override public boolean multiInstanceApproveCallback(String activityName, ProcessInstance processInstance) { return TodoCommonTemplate.super.multiInstanceApproveCallback(activityName, processInstance); diff --git a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderHistoryMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderHistoryMapper.xml index bcd40ed1..233a1b51 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderHistoryMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderHistoryMapper.xml @@ -75,6 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by, update_time, remark, + flow_type, #{purchaseId}, @@ -107,6 +108,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateBy}, update_time, #{remark}, + #{flowType}, diff --git a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml index 3e62f45a..cc138f49 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml @@ -46,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select t1.id, t1.purchase_no, t1.buyer_name, t1.buyer_address, t1.vendor_id, t1.currency, t1.purchaser_id, t1.purchaser_name , t1.purchaser_mobile, t1.purchaser_email, t1.warehouse_id, t1.pay_method, t1.owner_id, t1.owner_name, t1.remark, t1.total_amount - , t1.status, t1.approve_status, t1.approve_time, t1.approve_node, t1.confirm_status, t1.create_time, t1.update_time, t1.del_flag,t1.version + , t1.status, t1.approve_status, t1.approve_time, t1.approve_node, t1.confirm_status, t1.create_time, t1.update_time, t1.del_flag,t1.version,t1.flow_type from oms_purchase_order t1 @@ -67,7 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select t1.id, t1.purchase_no, t1.buyer_name, t1.buyer_address, t1.vendor_id, t1.currency, t1.purchaser_id, t1.purchaser_name - , t1.purchaser_mobile, t1.purchaser_email, t1.warehouse_id, t1.pay_method, t1.owner_id, t1.owner_name, t1.remark, t1.total_amount + , t1.purchaser_mobile, t1.purchaser_email, t1.warehouse_id, t1.pay_method, t1.owner_id, t1.owner_name, t1.remark, t1.total_amount,t1.flow_type , t1.status, t1.approve_status, t1.approve_time, t1.approve_node, t1.confirm_status, t1.create_time, t1.update_time, t1.del_flag,t1.version ,t2.vendor_name,t2.vendor_user,t2.vendor_phone from oms_purchase_order t1 @@ -99,10 +99,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"