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();
|
}
|
|
}
|