SpecPartBiz.java
2.71 KB
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
package com.sucl.sbmp.sys.biz;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sucl.sbmp.sys.entity.SpecPart;
import com.sucl.sbmp.sys.entity.TempScName;
import com.sucl.sbmp.sys.entity.TempScParts;
import com.sucl.sbmp.sys.service.SpecPartService;
import com.sucl.sbmp.sys.service.TempScNameService;
import com.sucl.sbmp.sys.service.TempScPartsService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
@AllArgsConstructor
public class SpecPartBiz {
private final TempScPartsService partsService;
private final TempScNameService nameService;
private final SpecPartService specPartService;
/**
* 将抽取的数据转换到spec_part表中
*
* 调用接口之前将TempScName的yn数据设置为0
*/
public void transferData() {
for (int i = 1; i < 100; i++) {
Page<TempScName> page = new Page<>(i, 1000);
nameService.page(page, Wrappers.<TempScName>lambdaQuery().eq(TempScName::getYn, false));
for (TempScName tempScName : page.getRecords()) {
try {
List<SpecPart> specParts = new ArrayList<>();
List<TempScParts> scParts = partsService.list(Wrappers.<TempScParts>lambdaQuery()
.eq(TempScParts::getScId, tempScName.getScId()));
List<String> oldCodes = U.collIds(specPartService.list(Wrappers.<SpecPart>lambdaQuery()
.select(SpecPart::getPartCode)
.eq(SpecPart::getSpecCode, tempScName.getCode())), SpecPart::getPartCode);
Map<String, Integer> partCodeMap = U.transferMap(scParts, TempScParts::getPartNumber, it -> 1, Integer::sum);
partCodeMap.forEach((k, v) -> {
if (!oldCodes.contains(k)) {
SpecPart specPart = new SpecPart();
specPart.setPartCode(k);
specPart.setPartCount(v);
specPart.setSpecCode(tempScName.getCode());
specPart.setStdType(1);
specParts.add(specPart);
}
});
U.groupUpdateData(specParts, specPartService::saveOrUpdateBatch);
tempScName.setYn(Boolean.TRUE);
nameService.updateById(tempScName);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}