liyong
昨天 efd19d385d177bfcc8d9747148ae2357e9f6aedc
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package com.ruoyi.basic.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.dto.SupplierManageDto;
import com.ruoyi.basic.excel.SupplierManageExcelDto;
import com.ruoyi.basic.mapper.SupplierManageMapper;
import com.ruoyi.basic.pojo.Customer;
import com.ruoyi.basic.pojo.SupplierManage;
import com.ruoyi.basic.service.ISupplierService;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
import com.ruoyi.purchase.pojo.PurchaseLedger;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
 
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
 
@Service
public class SupplierServiceImpl extends ServiceImpl<SupplierManageMapper,SupplierManage> implements ISupplierService {
 
    @Autowired
    private SupplierManageMapper supplierMapper;
    @Autowired
    private PurchaseLedgerMapper purchaseLedgerMapper;
 
    /**
     * 供应商新增
     * @param supplierManage
     * @return
     */
    @Override
    public void saveSupplier(SupplierManage supplierManage) {
        LambdaQueryWrapper<SupplierManage> supplierManageLambdaQueryWrapper = new LambdaQueryWrapper<>();
        supplierManageLambdaQueryWrapper.eq(SupplierManage::getSupplierName,supplierManage.getSupplierName());
        if (supplierMapper.selectCount(supplierManageLambdaQueryWrapper) > 0) {
            throw new RuntimeException("供应商已存在");
        }
        supplierMapper.insert(supplierManage);
    }
 
    /**
     * 供应商删除
     * @param ids
     * @return
     */
    @Override
    public int delSupplier(List<Integer> ids) {
        List<PurchaseLedger> purchaseLedgers = purchaseLedgerMapper.selectList(new QueryWrapper<PurchaseLedger>().lambda().in(PurchaseLedger::getSupplierId, ids));
        if (purchaseLedgers.size() > 0) {
            throw new RuntimeException("供应商已存在采购合同");
        }
        LambdaQueryWrapper<SupplierManage> delWrapper = new LambdaQueryWrapper<>();
        delWrapper.in(SupplierManage::getId, ids);
 
        return supplierMapper.delete(delWrapper);
    }
 
    /**
     * 供应商详情
     * @param id
     * @return
     */
    @Override
    public SupplierManage supplierDetail(Integer id) {
        return supplierMapper.selectById(id);
    }
 
    /**
     * 供应商修改
     * @param supplierManage
     * @return
     */
    @Override
    public int supplierUpdate(SupplierManage supplierManage) {
        return supplierMapper.updateById(supplierManage);
    }
 
    /**
     * 供应商分页查询
     * @param page
     * @param supplierManageDto
     * @return
     */
    @Override
    public IPage<SupplierManage> supplierListPage(Page page, SupplierManageDto supplierManageDto) {
        return supplierMapper.supplierListPage(page,supplierManageDto);
    }
 
    /**
     * 供应商导出
     * @param response
     * @param supplierManageDto
     */
    @Override
    public void supplierExport(HttpServletResponse response, SupplierManageDto supplierManageDto) {
        List<SupplierManageExcelDto> supplierManageList = supplierMapper.supplierExportList(supplierManageDto);
        ExcelUtil<SupplierManageExcelDto> util = new ExcelUtil<SupplierManageExcelDto>(SupplierManageExcelDto.class);
        util.exportExcel(response, supplierManageList, "供应商导出");
    }
 
    @Override
    public Boolean importData(MultipartFile file) {
 
        try {
            ExcelUtil<SupplierManageExcelDto> util = new ExcelUtil<SupplierManageExcelDto>(SupplierManageExcelDto.class);
            List<SupplierManageExcelDto> list = util.importExcel(file.getInputStream());
            ArrayList<SupplierManage> supplierManages = new ArrayList<>();
            list.stream().forEach(dto -> {
                SupplierManage supplierManage = new SupplierManage();
                BeanUtils.copyProperties(dto,supplierManage);
                supplierManage.setMaintainTime(LocalDate.now());
                Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
 
                supplierManage.setMaintainUserId(Integer.parseInt(userId+""));
                supplierManages.add(supplierManage);
            });
 
            this.saveOrUpdateBatch(supplierManages);
            return true;
        }catch (Exception e){
            e.printStackTrace();
        }
        return false;
    }
}