|
@@ -275,6 +275,27 @@ public class Inc10100Controller extends BaseController {
|
|
|
List<BizTechnologicalProcess> updateProcess = new ArrayList<>();
|
|
|
List<BizTechnologicalProcessDetail> saveProcessDetail = new ArrayList<>();
|
|
|
List<BizTechnologicalProcessDetail> updateProcessDetail = new ArrayList<>();
|
|
|
+ QueryWrapper<Sfc10401> changeWrapper = new QueryWrapper<>();
|
|
|
+ BizPullP2Time pullTech = new BizPullP2Time();
|
|
|
+ pullTech.setType("productTech");
|
|
|
+ List<BizPullP2Time> pullTeches = pullP2TimeService.getList(pullTech);
|
|
|
+ BizPullP2Time lastPullTech = null;
|
|
|
+ if (pullTeches.size() > 0) {
|
|
|
+ int lastIndex = pullTeches.size() - 1;
|
|
|
+ lastPullTech = pullTeches.get(lastIndex);
|
|
|
+ }
|
|
|
+ if (lastPullTech != null) {
|
|
|
+ Date newCondition = lastPullTech.getPullTime();
|
|
|
+ /*
|
|
|
+ * 这里应该根据新系统中记录的最大的拉取日期
|
|
|
+ * modate:P2中的修改日期,为了避免重复拉取,需要做条件判断。modate必须大于上一次拉取时间
|
|
|
+ */
|
|
|
+ changeWrapper.apply("modate IS NOT NULL AND modate > {0}", new DateTime(newCondition).toString("yyyy-MM-dd HH:mm:ss"));
|
|
|
+ }
|
|
|
+ List<Sfc10401> changeSfc10400 = sfc10401Service.getList(changeWrapper);
|
|
|
+ QueryWrapper<Sfc10401> changeAllQueryWrapper = new QueryWrapper<>();
|
|
|
+ changeAllQueryWrapper.in("(isnull(rtrim(cpart), '') + isnull(rtrim(prver), ''))", changeSfc10400.isEmpty() ? Collections.singletonList("0") : changeSfc10400.stream().map(v -> v.getCpart().trim() + v.getPrver().trim()).collect(Collectors.toList()));
|
|
|
+ List<Sfc10401> allChangeSfc10401 = sfc10401Service.getList(changeAllQueryWrapper);
|
|
|
sfc10401List.forEach(l -> {
|
|
|
// 判断是否有对应的technologicalProcessDetail
|
|
|
// 判断是工序序号的变化还是新增还是其他。
|
|
@@ -342,7 +363,8 @@ public class Inc10100Controller extends BaseController {
|
|
|
if (bizProduct != null && newProcess.getProductId() == null) {
|
|
|
newProcess.setProductId(bizProduct.getId());
|
|
|
newTech.setProductId(bizProduct.getId());
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
}
|
|
|
if (newProcess.getProcessCode() != null && !newProcess.getProcessCode().isEmpty()) {
|
|
|
BizProcess bizProcess = bases.stream().filter(v -> v.getProcessCode().equals(l.getPrcode().trim())).findFirst().orElse(null);
|
|
@@ -369,7 +391,7 @@ public class Inc10100Controller extends BaseController {
|
|
|
updateProcess.add(oldTech);
|
|
|
BizTechnologicalProcess newTech;
|
|
|
// 判断是否已加过对应工艺
|
|
|
- if(!saveProcess.stream().anyMatch(v -> v.getProductCode().trim().equals(l.getCpart().trim()) && v.getTechnologyVersion().trim().equals(l.getPrver()))) {
|
|
|
+ if (!saveProcess.stream().anyMatch(v -> v.getProductCode().trim().equals(l.getCpart().trim()) && v.getTechnologyVersion().trim().equals(l.getPrver()))) {
|
|
|
newTech = new BizTechnologicalProcess(oldTech);
|
|
|
newTech.setIsHistory(0);
|
|
|
newTech.setId(snowflakeIdWorker.nextId());
|
|
@@ -407,6 +429,44 @@ public class Inc10100Controller extends BaseController {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+ changeSfc10400.forEach(l -> {
|
|
|
+ BizTechnologicalProcess oldTech = processes.stream().filter(v -> v.getTechnologyVersion().trim().equals(l.getPrver().trim()) && v.getProductCode().trim().equals(l.getCpart().trim()) && v.getIsHistory().equals(0)).findFirst().orElse(null);
|
|
|
+ // 判断是否已有新版本 假设已有不更新 没有则更新
|
|
|
+ Long count = processDetails.stream().filter(v -> v.getTechnologyVersion().equals(l.getPrver().trim()) && v.getProductCode().equals(l.getCpart().trim())).count();
|
|
|
+ Long newCount = allChangeSfc10401.stream().filter(v -> v.getCpart().trim().equals(l.getCpart().trim()) && v.getPrver().trim().equals(l.getPrver().trim())).count();
|
|
|
+ if (!saveProcess.stream().anyMatch(t -> t.getProductCode().trim().equals(l.getCpart().trim()) && t.getTechnologyVersion().trim().equals(l.getPrver().trim())) && !count.equals(newCount)) {
|
|
|
+ oldTech.setIsHistory(1);
|
|
|
+ updateProcess.add(oldTech);
|
|
|
+ BizTechnologicalProcess newTech;
|
|
|
+ // 判断是否已加过对应工艺
|
|
|
+ newTech = new BizTechnologicalProcess(oldTech);
|
|
|
+ newTech.setIsHistory(0);
|
|
|
+ newTech.setId(snowflakeIdWorker.nextId());
|
|
|
+ saveProcess.add(newTech);
|
|
|
+ // 添加所有工艺明细
|
|
|
+ List<Sfc10401> itemProcesses = all10401List.stream().filter(v -> v.getCpart().trim().equals(l.getCpart().trim()) && v.getPrver().trim().equals(l.getPrver().trim())).collect(Collectors.toList());
|
|
|
+ itemProcesses.forEach(e -> {
|
|
|
+ BizTechnologicalProcessDetail newItem = new BizTechnologicalProcessDetail(e);
|
|
|
+ newItem.setTechnologicalProcessId(newTech.getId());
|
|
|
+ if (newTech.getProductCode() != null && !newTech.getProductCode().isEmpty()) {
|
|
|
+ BizProduct bizProduct = products.stream().filter(v -> v.getProductCode().trim().equals(l.getCpart().trim())).findFirst().orElse(null);
|
|
|
+ if (bizProduct != null) {
|
|
|
+ newItem.setProductId(bizProduct.getId());
|
|
|
+ }
|
|
|
+ bizProduct = newProducts.stream().filter(v -> v.getProductCode().trim().equals(l.getCpart().trim())).findFirst().orElse(null);
|
|
|
+ if (bizProduct != null && newItem.getProductId() == null) {
|
|
|
+ newItem.setProductId(bizProduct.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (newItem.getProcessCode() != null && !newItem.getProcessCode().isEmpty()) {
|
|
|
+ BizProcess bizProcess = bases.stream().filter(v -> v.getProcessCode().equals(e.getPrcode().trim())).findFirst().orElse(null);
|
|
|
+ newItem.setProcessId(bizProcess == null ? null : bizProcess.getId());
|
|
|
+ }
|
|
|
+ saveProcessDetail.add(newItem);
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
if ((saveProcess.isEmpty() || technologicalProcessService.saveBatch(saveProcess)) && (updateProcess.isEmpty() || technologicalProcessService.updateBatchById(updateProcess)) && (saveProcessDetail.isEmpty() || technologicalProcessDetailService.saveBatch(saveProcessDetail)) && (updateProcessDetail.isEmpty() || technologicalProcessDetailService.updateBatchById(updateProcessDetail))) {
|
|
|
BizPullP2Time bizPullP2Time = new BizPullP2Time();
|
|
|
// 将当前时间赋值给 pullTime 属性
|
|
@@ -527,6 +587,7 @@ public class Inc10100Controller extends BaseController {
|
|
|
|
|
|
/**
|
|
|
* 根据轴类型编码,获取新系统中的轴类型id【需要进一步实现】
|
|
|
+ *
|
|
|
* @param code 轴类型编码
|
|
|
* @return 轴类型
|
|
|
*/
|