feat(sip): 新增采购订单相关功能及优化审批流程
- 在application.yml中新增采购订单在线审批配置 - 为采购订单模块添加查询接口及权限控制 - 增加根据采购单号查询订单详情的方法 - 优化采购订单撤回逻辑,支持更多状态下的撤回操作 - 更新采购订单页面权限标识和状态判断条件 - 修复采购订单详情页付款方式字段显示问题 - 关联仓库信息到采购订单并展示仓库名称 - 启用待办任务中的业务信息处理逻辑master
parent
43e2225c3d
commit
bb79ce79bd
|
|
@ -89,7 +89,7 @@
|
|||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="付款方式" prop="payMethod">
|
||||
<span>{{ selectedVendor.payType==='1'?'出库付款':'入库付款' }}</span>
|
||||
<span>{{ selectedVendor.payMethod==='1'?'出库付款':'入库付款' }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
|
|
@ -411,10 +411,12 @@ export default {
|
|||
this.selectedVendor = this.vendorOptions.find(item => item.vendorId === vendorId) || {};
|
||||
this.form.warehouseId = this.selectedVendor.warehouseId
|
||||
this.currentVendorCode=this.selectedVendor.vendorCode;
|
||||
this.form.payMethod=this.selectedVendor.payMethod;
|
||||
} else {
|
||||
this.selectedVendor = {};
|
||||
this.form.warehouseId = null;
|
||||
this.currentVendorCode = null;
|
||||
this.form.payMethod = null;
|
||||
}
|
||||
},
|
||||
/** 处理采购员选择 */
|
||||
|
|
|
|||
|
|
@ -163,11 +163,11 @@
|
|||
type="text"
|
||||
icon="el-icon-s-promotion"
|
||||
@click="handleInitiateVendorConfirmation(scope.row)"
|
||||
v-hasPermi="['sip:purchaseorder:edit']"
|
||||
v-hasPermi="['sip:purchaseorder:confirm']"
|
||||
>发起供应商确认
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.approveStatus === '2' && (!scope.row.confirmStatus || scope.row.confirmStatus === '')"
|
||||
v-if="scope.row.approveStatus === '2' && (!scope.row.confirmStatus || scope.row.confirmStatus === ''|| scope.row.confirmStatus === '2')"
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-refresh-left"
|
||||
|
|
|
|||
|
|
@ -144,6 +144,7 @@ process:
|
|||
definition:
|
||||
orderApproveOnline: order_approve_online
|
||||
orderApproveOffline: order_approve_offline
|
||||
purchaseOrderApprove: purchase_order_online
|
||||
|
||||
#业务执行实例bean name ,可以按审批节点配置 业务审批回调方法处理业务逻辑. key 为流程节点主键ID value 要执行的业务方法名称,不配置则默认调用TodoCommonTemplate.todoApproveCallback
|
||||
instance:
|
||||
|
|
@ -151,6 +152,8 @@ process:
|
|||
beanName: projectOrderInfoServiceImpl
|
||||
orderApproveOffline:
|
||||
beanName: projectOrderInfoServiceImpl
|
||||
purchaseOrderOnline:
|
||||
beanName: omsPurchaseOrderServiceImpl
|
||||
unis:
|
||||
inventory:
|
||||
allAuthRole: 103,101
|
||||
|
|
|
|||
|
|
@ -124,6 +124,12 @@ public class OmsPurchaseOrderController extends BaseController
|
|||
{
|
||||
return success(omsPurchaseOrderService.selectOmsPurchaseOrderById(id));
|
||||
}
|
||||
@RequiresPermissions("sip:purchaseorder:query")
|
||||
@GetMapping(value = "/code/{purchaseNo}")
|
||||
public AjaxResult getInfo(@PathVariable("purchaseNo") String purchaseNo)
|
||||
{
|
||||
return success(omsPurchaseOrderService.selectOmsPurchaseOrderByNo(purchaseNo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增采购单主表
|
||||
|
|
@ -150,7 +156,7 @@ public class OmsPurchaseOrderController extends BaseController
|
|||
/**
|
||||
* 发起供应商确认
|
||||
*/
|
||||
@RequiresPermissions("sip:purchaseorder:edit")
|
||||
@RequiresPermissions("sip:purchaseorder:confirm")
|
||||
@Log(title = "采购单主表", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/vendorConfirmStatus")
|
||||
public AjaxResult vendorConfirmStatus(@RequestBody OmsPurchaseOrder omsPurchaseOrder)
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ public class OmsPurchaseOrder extends BaseEntity
|
|||
|
||||
/** 入库仓库ID */
|
||||
private Long warehouseId;
|
||||
private String warehouseName;
|
||||
|
||||
/** 付款方式 */
|
||||
private String payMethod;
|
||||
|
|
|
|||
|
|
@ -166,14 +166,14 @@ public class TodoServiceImpl implements TodoService {
|
|||
todoDto.setRoleName(userRoleMap.get(Long.parseLong(todoDto.getApproveUser())));
|
||||
}
|
||||
//关联业务信息
|
||||
// dealBusinessInfo(todo, todoCompletedList);
|
||||
dealBusinessInfo(todo, todoCompletedList);
|
||||
|
||||
|
||||
return todoCompletedList;
|
||||
}
|
||||
|
||||
private void dealBusinessInfo(Todo todo, List<Todo> todoCompletedList) {
|
||||
if (CollUtil.isEmpty(todoCompletedList)) {
|
||||
if (CollUtil.isEmpty(todoCompletedList) || CollUtil.isEmpty(todo.getProcessKeyList())) {
|
||||
return;
|
||||
}
|
||||
TodoCommonTemplate todoExecuteInstance = null;
|
||||
|
|
|
|||
|
|
@ -111,4 +111,6 @@ public interface OmsPurchaseOrderMapper
|
|||
|
||||
List<OmsPurchaseOrderItem> listItemByCodeList(List<String> collect);
|
||||
|
||||
int recallPurchaseOrder(OmsPurchaseOrder omsPurchaseOrder);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,4 +95,6 @@ public interface IOmsPurchaseOrderService
|
|||
void innerWarehouse(Long itemId, Long quantity);
|
||||
|
||||
void cancelInnerItem(List<OmsPurchaseOrderItem> omsPurchaseOrderItems);
|
||||
|
||||
OmsPurchaseOrder selectOmsPurchaseOrderByNo(String purchaseNo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -349,6 +349,14 @@ public class OmsPurchaseOrderServiceImpl implements IOmsPurchaseOrderService, To
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public OmsPurchaseOrder selectOmsPurchaseOrderByNo(String purchaseNo) {
|
||||
OmsPurchaseOrder omsPurchaseOrder = omsPurchaseOrderMapper.selectByNo(purchaseNo);
|
||||
List<OmsPurchaseOrderItem> omsPurchaseOrderItems = omsPurchaseOrderMapper.listItemByPurchaseId(omsPurchaseOrder.getId());
|
||||
omsPurchaseOrder.setOmsPurchaseOrderItemList(omsPurchaseOrderItems);
|
||||
return omsPurchaseOrder;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增采购单明细表信息
|
||||
|
|
@ -403,15 +411,16 @@ public class OmsPurchaseOrderServiceImpl implements IOmsPurchaseOrderService, To
|
|||
}
|
||||
// 只有审批状态为“已通过”(2) 且 供应商确认状态为空或 null 时才能撤回
|
||||
if (ApproveStatusEnum.APPROVE_COMPLETE.getCode().equals(omsPurchaseOrder.getApproveStatus()) &&
|
||||
(StringUtils.isEmpty(omsPurchaseOrder.getConfirmStatus()) || "".equals(omsPurchaseOrder.getConfirmStatus()))) {
|
||||
(StringUtils.isEmpty(omsPurchaseOrder.getConfirmStatus()) || "".equals(omsPurchaseOrder.getConfirmStatus())|| OmsPurchaseOrder.ConfirmStatusEnum.REJECT.getCode().equals(omsPurchaseOrder.getConfirmStatus()))) {
|
||||
// 保存历史记录
|
||||
saveOrderHistory(omsPurchaseOrder);
|
||||
|
||||
omsPurchaseOrder.setApproveStatus(ApproveStatusEnum.WAIT_COMMIT.getCode()); // 设置为待审批(草稿)
|
||||
omsPurchaseOrder.setApproveTime(null); // 清空审批时间
|
||||
omsPurchaseOrder.setConfirmStatus(null); // 清空审批时间
|
||||
omsPurchaseOrder.setUpdateTime(DateUtils.getNowDate());
|
||||
omsPurchaseOrder.setVersion(omsPurchaseOrder.getVersion() + 1); // 版本号 +1
|
||||
return omsPurchaseOrderMapper.updateOmsPurchaseOrder(omsPurchaseOrder);
|
||||
return omsPurchaseOrderMapper.recallPurchaseOrder(omsPurchaseOrder);
|
||||
} else {
|
||||
throw new ServiceException("当前订单状态不允许撤回");
|
||||
}
|
||||
|
|
@ -466,6 +475,11 @@ public class OmsPurchaseOrderServiceImpl implements IOmsPurchaseOrderService, To
|
|||
if (approveBtn.equals(0)) {
|
||||
handleRejectOrder( businessKey);
|
||||
}
|
||||
// else {
|
||||
// if ("公司领导".equals(taskName) && approveBtn == 1) {
|
||||
// handleCompanyLeaderApproval(businessKey);
|
||||
// }
|
||||
// }
|
||||
|
||||
return TodoCommonTemplate.super.todoApproveCallback(todo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,9 +69,10 @@ 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.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
|
||||
,t2.vendor_name,t2.vendor_user,t2.vendor_phone,t3.warehouse_name
|
||||
from oms_purchase_order t1
|
||||
left join oms_vendor_info t2 on t1.vendor_id = t2.vendor_id
|
||||
left join oms_warehouse_info t3 on t1.warehouse_id = t3.id
|
||||
</sql>
|
||||
|
||||
<select id="selectOmsPurchaseOrderList" parameterType="OmsPurchaseOrder" resultMap="OmsPurchaseOrderResult">
|
||||
|
|
@ -410,6 +411,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
where t1.product_code = #{item.productCode} and t2.purchase_no=#{item.purchaseNo}
|
||||
</foreach>
|
||||
</update>
|
||||
<update id="recallPurchaseOrder">
|
||||
update oms_purchase_order
|
||||
set approve_status = #{approveStatus},
|
||||
approve_time = null,
|
||||
confirm_status = null,
|
||||
update_time = #{updateTime},
|
||||
version = version + 1
|
||||
where purchase_no = #{purchaseNo}
|
||||
</update>
|
||||
|
||||
<insert id="batchOmsPurchaseOrderItem">
|
||||
insert into oms_purchase_order_item( purchase_id, product_code, inner_quantity, quantity, price, tax_rate, tax_total, amount_total,delivery_date) values
|
||||
|
|
|
|||
Loading…
Reference in New Issue