maven
昨天 da78c6cd6cfa63c09fc8b41c18af6f06393847aa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package com.ruoyi.purchase.controller;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.purchase.dto.PurchaseLedgerDto;
import com.ruoyi.purchase.mapper.PurchaseLedgerTemplateMapper;
import com.ruoyi.purchase.mapper.SalesLedgerProductTemplateMapper;
import com.ruoyi.purchase.pojo.PurchaseLedgerTemplate;
import com.ruoyi.purchase.pojo.SalesLedgerProductTemplate;
import com.ruoyi.purchase.service.PurchaseLedgerTemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import java.util.HashMap;
import java.util.List;
 
/**
 * <p>
 * 采购台账模板 前端控制器
 * </p>
 *
 * @author 芯导软件(江苏)有限公司
 * @since 2026-01-26 11:21:44
 */
@RestController
@RequestMapping("/purchaseLedgerTemplate")
@Api(tags = "采购台账模板")
public class PurchaseLedgerTemplateController {
 
    @Autowired
    private PurchaseLedgerTemplateMapper purchaseLedgerTemplateMapper;
 
    @Autowired
    private SalesLedgerProductTemplateMapper salesLedgerProductTemplateMapper;
 
    @PostMapping("/add")
    @Log(title = "添加采购台账模板", businessType = BusinessType.INSERT)
    @ApiOperation(value = "添加采购台账模板")
    public AjaxResult add(@RequestBody PurchaseLedgerDto purchaseLedgerDto) {
        // 采购模板
        if(StringUtils.isNotEmpty(purchaseLedgerDto.getTemplateName())){
            // 模板名称不能重复,有重复就不需要新增了
            PurchaseLedgerTemplate purchaseLedgerTemplate = purchaseLedgerTemplateMapper
                    .selectOne(new LambdaQueryWrapper<PurchaseLedgerTemplate>()
                            .eq(PurchaseLedgerTemplate::getTemplateName, purchaseLedgerDto.getTemplateName())
                            .last("limit 1"));
            if(purchaseLedgerTemplate == null){
                purchaseLedgerTemplate = new PurchaseLedgerTemplate();
                BeanUtils.copyProperties(purchaseLedgerDto, purchaseLedgerTemplate);
                purchaseLedgerTemplate.setTemplateName(purchaseLedgerDto.getTemplateName());
                purchaseLedgerTemplateMapper.insert(purchaseLedgerTemplate);
                // 产品模板新增
                PurchaseLedgerTemplate finalPurchaseLedgerTemplate = purchaseLedgerTemplate;
                purchaseLedgerDto.getProductData().forEach(product -> {
                    SalesLedgerProductTemplate salesLedgerProductTemplate = new SalesLedgerProductTemplate();
                    BeanUtils.copyProperties(product, salesLedgerProductTemplate);
                    salesLedgerProductTemplate.setSalesLedgerId(finalPurchaseLedgerTemplate.getId());
                    salesLedgerProductTemplate.setType(2);
                    salesLedgerProductTemplateMapper.insert(salesLedgerProductTemplate);
                });
            }
        }
        return AjaxResult.success();
    }
 
    @DeleteMapping("/delete")
    @Log(title = "采购台账模板", businessType = BusinessType.DELETE)
    @ApiOperation(value = "删除采购台账模板")
    public AjaxResult delete(@RequestBody List<Long> id) {
        if(CollectionUtils.isEmpty(id)) return AjaxResult.error("请选择要删除的采购台账模板");
        int result = purchaseLedgerTemplateMapper.deleteBatchIds(id);
        salesLedgerProductTemplateMapper.delete(new LambdaQueryWrapper<SalesLedgerProductTemplate>()
                .in(SalesLedgerProductTemplate::getSalesLedgerId, id));
        return AjaxResult.success(result);
    }
 
    @PostMapping("/update")
    @Log(title = "修改采购台账模板", businessType = BusinessType.UPDATE)
    @ApiOperation(value = "修改采购台账模板")
    public AjaxResult update(@RequestBody PurchaseLedgerDto purchaseLedgerDto) {
        // 模板名称不能重复,有重复就不需要新增了
        PurchaseLedgerTemplate purchaseLedgerTemplate = purchaseLedgerTemplateMapper
                .selectOne(new LambdaQueryWrapper<PurchaseLedgerTemplate>()
                        .eq(PurchaseLedgerTemplate::getTemplateName, purchaseLedgerDto.getTemplateName())
                        .last("limit 1"));
        if(purchaseLedgerTemplate != null){
            BeanUtils.copyProperties(purchaseLedgerDto, purchaseLedgerTemplate);
            purchaseLedgerTemplate.setTemplateName(purchaseLedgerDto.getTemplateName());
            purchaseLedgerTemplateMapper.updateById(purchaseLedgerTemplate);
            // 产品模板删除
            salesLedgerProductTemplateMapper.delete(new LambdaQueryWrapper<SalesLedgerProductTemplate>()
                    .in(SalesLedgerProductTemplate::getSalesLedgerId, purchaseLedgerTemplate.getId()));
            // 产品模板新增
            purchaseLedgerDto.getProductData().forEach(product -> {
                SalesLedgerProductTemplate salesLedgerProductTemplate = new SalesLedgerProductTemplate();
                BeanUtils.copyProperties(product, salesLedgerProductTemplate);
                salesLedgerProductTemplate.setSalesLedgerId(purchaseLedgerTemplate.getId());
                salesLedgerProductTemplateMapper.insert(salesLedgerProductTemplate);
            });
        }
        return AjaxResult.success();
    }
 
}