yangys
2025-08-21 3b55234db1169826e52bd540e4f3cef9dc58e23b
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
package org.springblade.mdm.basesetting.producedivision.service;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision;
import org.springblade.mdm.basesetting.producedivision.entity.QinzheFgb;
import org.springblade.mdm.basesetting.producedivision.mapper.QinzheFgbMapper;
import org.springblade.mdm.basesetting.producedivision.vo.DivisionExcel;
import org.springblade.mdm.basesetting.producedivision.vo.ImportResult;
import org.springblade.mdm.basesetting.producedivision.vo.QinzheFgbExcel;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
 
import java.util.ArrayList;
import java.util.List;
 
@Service
public class QinzheFgbService extends ServiceImpl<QinzheFgbMapper, QinzheFgb> {
    /**
     * 根据零件号获取数据
     * @param ljh 零件号
     * @return 分工表实体,找不到返回null
     */
    public QinzheFgb getByLjh(String ljh) {
        return lambdaQuery().eq(QinzheFgb::getLjh, ljh).list().stream().findFirst().orElse(null);
    }
 
    /**
     * 查询分页
     * @param query 查询参数
     * @return 分页数据
     */
    /*
    public IPage<QinzheFgb> pageQuery(String name, Query query) {
        return this.lambdaQuery().like(StringUtils.isNotBlank(name),QinzheFgb::getZggy,name).page(Condition.getPage(query));
    }
    */
 
    public List<String> seletDropList(String ljh) {
        return this.baseMapper.seletDropList(ljh);
 
    }
 
    /**
     * 导入勤哲分工表
     * @param file excel文件
     * @return 导入结果
     */
    @Transactional
    public void importFgb(MultipartFile file) {
 
        List<QinzheFgbExcel> list = ExcelUtil.read(file, QinzheFgbExcel.class);
        List<QinzheFgb> entityList = new ArrayList<>();
 
        for(QinzheFgbExcel qzExcel: list){
            QinzheFgb fgb = new QinzheFgb();
            BeanUtils.copyProperties(qzExcel,fgb);
            fgb.setSource("QZ");
            entityList.add(fgb);
        }
 
        saveIfNotExists(entityList);
    }
 
    /**
     * 不存在则保存
     * @param entityList 数据列表
     */
    @Transactional
    private void saveIfNotExists(List<QinzheFgb> entityList) {
 
        List<QinzheFgb> willSaveList = entityList.stream().filter(e -> !exists(e)).toList();
        this.saveBatch(willSaveList);
 
    }
 
    /**
     * 判断数据是否存在
     * @param entity 实体
     * @return 是否存在
     */
    boolean exists(QinzheFgb entity){
        return lambdaQuery().eq(QinzheFgb::getLjh, entity.getLjh())
            .eq(QinzheFgb::getCph, entity.getCph()).eq(QinzheFgb::getZggy, entity.getZggy()).count() > 0;
    }
 
}