huminmin
8 天以前 7b8b2456bb15aa733b8599fce2ada5d9549ba881
src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -23,9 +23,11 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -171,6 +173,20 @@
    }
    /**
     * 导出售后台账工艺路线
     */
    @Log(title = "销售台账工艺路线", businessType = BusinessType.EXPORT)
    @PostMapping("/exportProcessRoute")
    @ApiOperation("导出售后台账工艺路线")
    public void exportProcessRoute(HttpServletResponse response,
                                   HttpServletRequest request,
                                   @RequestParam(value = "completedTimeStart", required = false) String completedTimeStart,
                                   @RequestParam(value = "completedTimeEnd", required = false) String completedTimeEnd) {
        List<Long> salesLedgerIds = parseSalesLedgerIds(request);
        salesLedgerService.exportProcessRoute(response, salesLedgerIds, completedTimeStart, completedTimeEnd);
    }
    /**
     * 导出开票登记列表
     */
    @Log(title = "导出开票登记列表", businessType = BusinessType.EXPORT)
@@ -198,8 +214,8 @@
     */
    @PostMapping("/saleProcessBind")
    @ApiOperation("销售订单绑定工艺路线")
    public AjaxResult saleProcessBind(@RequestBody SalesLedgerProcessRoute salesLedgerProcessRoute) {
        salesLedgerService.saleProcessBind(salesLedgerProcessRoute);
    public AjaxResult saleProcessBind(@RequestBody SalesLedgerProcessRouteDto salesLedgerProcessRouteDto) {
        salesLedgerService.saleProcessBind(salesLedgerProcessRouteDto);
        return AjaxResult.success();
    }
@@ -443,4 +459,53 @@
        excelUtil.importTemplateExcel(response, "未出库导入模板下载");
    }
    private List<Long> parseSalesLedgerIds(HttpServletRequest request) {
        if (request == null) {
            return Collections.emptyList();
        }
        List<Long> ids = new ArrayList<>();
        Map<String, String[]> parameterMap = request.getParameterMap();
        if (parameterMap == null || parameterMap.isEmpty()) {
            return ids;
        }
        String directValue = request.getParameter("salesLedgerIds");
        if (StringUtils.hasText(directValue)) {
            for (String value : directValue.split(",")) {
                addParsedLong(ids, value);
            }
        }
        for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
            String key = entry.getKey();
            if (!StringUtils.hasText(key)) {
                continue;
            }
            if (!"salesLedgerIds".equals(key) && !key.startsWith("salesLedgerIds[")) {
                continue;
            }
            String[] values = entry.getValue();
            if (values == null) {
                continue;
            }
            for (String value : values) {
                addParsedLong(ids, value);
            }
        }
        return ids.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());
    }
    private void addParsedLong(List<Long> target, String value) {
        if (target == null || !StringUtils.hasText(value)) {
            return;
        }
        try {
            target.add(Long.valueOf(value.trim()));
        } catch (Exception ignored) {
            // ignore invalid id values
        }
    }
}