| | |
| | | |
| | | import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; |
| | | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| | | import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
| | | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap; |
| | | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; |
| | | |
| | |
| | | return success(true); |
| | | } |
| | | |
| | | @PutMapping("/update-status") |
| | | @Operation(summary = "更新销售订单的状态") |
| | | @PostMapping("/submit") |
| | | @Operation(summary = "提交销售订单审批(协同办公)") |
| | | @PreAuthorize("@ss.hasPermission('erp:sale-order:update-status')") |
| | | public CommonResult<Boolean> updateSaleOrderStatus(@RequestParam("id") Long id, |
| | | @RequestParam("status") Integer status) { |
| | | saleOrderService.updateSaleOrderStatus(id, status); |
| | | public CommonResult<Boolean> submitSaleOrder(@RequestParam("id") Long id, |
| | | @RequestParam("processDefinitionKey") String processDefinitionKey) { |
| | | Long userId = getLoginUserId(); |
| | | saleOrderService.submitSaleOrder(id, processDefinitionKey, userId); |
| | | return success(true); |
| | | } |
| | | |
| | | @GetMapping("/approve-process-list") |
| | | @Operation(summary = "获取销售订单审批流程列表") |
| | | @PreAuthorize("@ss.hasPermission('erp:sale-order:query')") |
| | | public CommonResult<List<Map<String, Object>>> getApproveProcessList() { |
| | | return success(saleOrderService.getSaleOrderApproveProcessDefinitionList()); |
| | | } |
| | | |
| | | @PutMapping("/cancel") |
| | |
| | | convertSet(saleOrderItemList, ErpSaleOrderItemDO::getProductUnitId)); |
| | | // 3. 转换订单项 |
| | | List<ErpSaleOrderRespVO.Item> itemVOList = BeanUtils.toBean(saleOrderItemList, ErpSaleOrderRespVO.Item.class, item -> { |
| | | fillItemPrice(item); |
| | | item.setStockCount(mesWmStockApi.getStockQuantity(item.getProductId())); |
| | | item.setBatchCode(batchCodeMap.get(item.getId())); |
| | | MapUtils.findAndThen(itemMap, item.getProductId(), mdmItem -> |
| | |
| | | return BeanUtils.toBean(pageResult, ErpSaleOrderRespVO.class, saleOrder -> { |
| | | saleOrder.setItems(BeanUtils.toBean(saleOrderItemMap.get(saleOrder.getId()), ErpSaleOrderRespVO.Item.class, |
| | | item -> { |
| | | fillItemPrice(item); |
| | | item.setBatchCode(batchCodeMap.get(item.getId())); |
| | | MapUtils.findAndThen(itemMap, item.getProductId(), mdmItem -> |
| | | item.setProductName(mdmItem.getName()).setProductBarCode(mdmItem.getBarCode()) |
| | |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 填充订单项的金额字段 |
| | | * |
| | | * DO 中 totalPrice 为产品金额(不含税),RespVO 需要补全: |
| | | * - totalProductPrice:产品金额 |
| | | * - totalPrice:含税金额(产品金额 + 税额) |
| | | */ |
| | | private void fillItemPrice(ErpSaleOrderRespVO.Item item) { |
| | | BigDecimal productAmount = item.getTotalPrice() != null ? item.getTotalPrice() : BigDecimal.ZERO; |
| | | BigDecimal tax = item.getTaxPrice() != null ? item.getTaxPrice() : BigDecimal.ZERO; |
| | | item.setTotalProductPrice(productAmount); |
| | | item.setTotalPrice(productAmount.add(tax)); |
| | | } |
| | | |
| | | } |