|
@@ -108,414 +108,415 @@ public class Inc10100Controller extends BaseController {
|
|
|
List<Inc10100> inc10100List = IInc10100Service.getList(queryWrapper);
|
|
|
// List<BizProduct> products = productService.query().list();
|
|
|
List<BizProduct> products = productService.getList(new BizProduct());
|
|
|
- List<BizProduct> newProducts = new ArrayList<>();
|
|
|
- List<BizProduct> changeProducts = new ArrayList<>();
|
|
|
- List<SysUser> userList = sysUserService.getList();
|
|
|
- SysDictData conditions = new SysDictData();
|
|
|
- conditions.setDictType("product_status_code");
|
|
|
- List<SysDictData> dictList = sysDictDataService.selectDictDataList(conditions);
|
|
|
- List<BizShaftCategory> categories = bizShaftCategoryService.query().list();
|
|
|
- inc10100List.forEach(l -> {
|
|
|
- if (products.stream().anyMatch(v -> v.getProductCode().equals(l.getPart().trim()) && v.getPreStock().equals(l.getPrloc().trim()))) {
|
|
|
- // 已插入产品
|
|
|
- BizProduct old = products.stream().filter(v -> v.getProductCode().equals(l.getPart().trim()) && v.getPreStock().equals(l.getPrloc().trim())).findFirst().orElse(null);
|
|
|
- if (old != null) {
|
|
|
- old.setType(l.getType());
|
|
|
- old.setShaftBroadCategoryCode(l.getDtype());
|
|
|
- old.setShaftCategoryCode(l.getZtype());
|
|
|
- if (old.getShaftCategoryCode() != null) {
|
|
|
- BizShaftCategory bizShaftCategory = categories.stream().filter(v -> v.getSubCategoryCode().equals(old.getShaftCategoryCode())).findFirst().orElse(null);
|
|
|
- old.setShaftCategoryId(bizShaftCategory != null ? bizShaftCategory.getId() : null);
|
|
|
- }
|
|
|
- if (old.getShaftBroadCategoryCode() != null) {
|
|
|
-
|
|
|
- }
|
|
|
- old.setSpecification(l.getSpec());
|
|
|
- old.setDrawingNumber(l.getDraw());
|
|
|
- old.setCompanyAlias(l.getKhjc());
|
|
|
- old.setMaterialNum(l.getKhpart());
|
|
|
- old.setCompanyCode(l.getCust());
|
|
|
- old.setDescription(l.getDescr());
|
|
|
- old.setProductionTenantId(l.getSfacno() != null ? Long.parseLong(l.getSfacno()) : null);
|
|
|
- old.setDiameter(l.getDzj());
|
|
|
- old.setLenght(l.getLenght());
|
|
|
- old.setThickness(BigDecimal.valueOf(l.getAbbr()));
|
|
|
- old.setDensity(l.getDensity());
|
|
|
- old.setSalesmanCode(l.getXsyno());
|
|
|
- if (old.getSalesmanCode() != null) {
|
|
|
- SysUser user = userList.stream().filter(v -> v.getUserName().equals(old.getSalesmanCode())).findFirst().orElse(null);
|
|
|
- old.setSalesmanId(user != null ? user.getUserId() : null);
|
|
|
- }
|
|
|
- old.setStockKeeperCode(l.getBgyno());
|
|
|
- if (old.getStockKeeperCode() != null) {
|
|
|
- SysUser bgy = userList.stream().filter(v -> v.getUserName().equals(old.getStockKeeperCode())).findFirst().orElse(null);
|
|
|
- old.setStockKeeperId(bgy != null ? bgy.getUserId() : null);
|
|
|
- }
|
|
|
- old.setDispatcherCode(l.getDdyno());
|
|
|
- if (old.getDispatcherCode() != null) {
|
|
|
- SysUser ddy = userList.stream().filter(v -> v.getUserName().equals(old.getDispatcherCode())).findFirst().orElse(null);
|
|
|
- old.setDispatcherId(ddy != null ? ddy.getUserId() : null);
|
|
|
- }
|
|
|
- old.setMaterialCode(l.getPhcode());
|
|
|
- if (old.getMaterialCode() != null) {
|
|
|
- // 目前没有材料表
|
|
|
- }
|
|
|
- old.setProductStatusCode(l.getStatus());
|
|
|
- if (old.getProductStatusCode() != null) {
|
|
|
- SysDictData dictData = dictList.stream().filter(v -> v.getDictValue().equals(old.getProductStatusCode())).findFirst().orElse(null);
|
|
|
- old.setProductStatusId(dictData != null ? dictData.getDictCode() : null);
|
|
|
- }
|
|
|
- old.setTechnicianCode(l.getJsyno());
|
|
|
- if (old.getTechnicianCode() != null) {
|
|
|
- SysUser jsy = userList.stream().filter(v -> v.getUserName().equals(old.getTechnicianCode())).findFirst().orElse(null);
|
|
|
- old.setTechnicianId(jsy != null ? jsy.getUserId() : null);
|
|
|
- }
|
|
|
- old.setRemark(l.getRemark());
|
|
|
- changeProducts.add(old);
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 新产品
|
|
|
- BizProduct newProduct = new BizProduct();
|
|
|
- newProduct.setProductCode(l.getPart());
|
|
|
- newProduct.setMaterialNum(l.getKhpart());
|
|
|
- newProduct.setPreStock(l.getPrloc());
|
|
|
- newProduct.setType(l.getType());
|
|
|
- newProduct.setShaftBroadCategoryCode(l.getDtype());
|
|
|
- newProduct.setShaftCategoryCode(l.getZtype());
|
|
|
- if (newProduct.getShaftCategoryCode() != null) {
|
|
|
- BizShaftCategory bizShaftCategory = categories.stream().filter(v -> v.getSubCategoryCode().equals(newProduct.getShaftCategoryCode())).findFirst().orElse(null);
|
|
|
- newProduct.setShaftCategoryId(bizShaftCategory != null ? bizShaftCategory.getId() : null);
|
|
|
- }
|
|
|
- if (newProduct.getShaftBroadCategoryCode() != null) {
|
|
|
-
|
|
|
- }
|
|
|
- newProduct.setSpecification(l.getSpec());
|
|
|
- newProduct.setDrawingNumber(l.getDraw());
|
|
|
- newProduct.setCompanyAlias(l.getKhjc());
|
|
|
- newProduct.setCompanyCode(l.getCust());
|
|
|
- newProduct.setDescription(l.getDescr());
|
|
|
- newProduct.setProductionTenantId(l.getSfacno() != null ? Long.parseLong(l.getSfacno()) : null);
|
|
|
- newProduct.setDiameter(l.getDzj());
|
|
|
- newProduct.setLenght(l.getLenght());
|
|
|
- newProduct.setThickness(BigDecimal.valueOf(l.getAbbr()));
|
|
|
- newProduct.setDensity(l.getDensity());
|
|
|
- newProduct.setSalesmanCode(l.getXsyno());
|
|
|
- if (newProduct.getSalesmanCode() != null) {
|
|
|
- SysUser user = userList.stream().filter(v -> v.getUserName().equals(newProduct.getSalesmanCode())).findFirst().orElse(null);
|
|
|
- newProduct.setSalesmanId(user != null ? user.getUserId() : null);
|
|
|
- }
|
|
|
- newProduct.setStockKeeperCode(l.getBgyno());
|
|
|
- if (newProduct.getStockKeeperCode() != null) {
|
|
|
- SysUser user = userList.stream().filter(v -> v.getUserName().equals(newProduct.getStockKeeperCode())).findFirst().orElse(null);
|
|
|
- newProduct.setStockKeeperId(user != null ? user.getUserId() : null);
|
|
|
- }
|
|
|
- newProduct.setDispatcherCode(l.getDdyno());
|
|
|
- if (newProduct.getDispatcherCode() != null) {
|
|
|
- SysUser user = userList.stream().filter(v -> v.getUserName().equals(newProduct.getDispatcherCode())).findFirst().orElse(null);
|
|
|
- newProduct.setDispatcherId(user != null ? user.getUserId() : null);
|
|
|
- }
|
|
|
- newProduct.setMaterialCode(l.getPhcode());
|
|
|
- if (newProduct.getMaterialCode() != null) {
|
|
|
- // 目前没有材料表
|
|
|
- }
|
|
|
- newProduct.setProductStatusCode(l.getStatus());
|
|
|
- if (newProduct.getProductStatusCode() != null) {
|
|
|
- SysDictData dictData = dictList.stream().filter(v -> v.getDictValue().equals(newProduct.getProductStatusCode())).findFirst().orElse(null);
|
|
|
- newProduct.setProductStatusId(dictData != null ? dictData.getDictCode() : null);
|
|
|
- }
|
|
|
- newProduct.setTechnicianCode(l.getJsyno());
|
|
|
- if (newProduct.getTechnicianCode() != null) {
|
|
|
- SysUser jsy = userList.stream().filter(v -> v.getUserName().equals(newProduct.getTechnicianCode())).findFirst().orElse(null);
|
|
|
- newProduct.setTechnicianId(jsy != null ? jsy.getUserId() : null);
|
|
|
- }
|
|
|
- newProduct.setRemark(l.getRemark());
|
|
|
- newProducts.add(newProduct);
|
|
|
- }
|
|
|
- });
|
|
|
- if ((newProducts.isEmpty() || productService.saveBatch(newProducts)) && (changeProducts.isEmpty() || productService.updateBatchById(changeProducts))) {
|
|
|
- BizPullP2Time bizPullP2Time = new BizPullP2Time();
|
|
|
- // 将当前时间赋值给 pullTime 属性
|
|
|
- bizPullP2Time.setPullTime(new Date());
|
|
|
- bizPullP2Time.setType("product");
|
|
|
- // 保存数据
|
|
|
- pullP2TimeService.saveOrUpdate(bizPullP2Time);
|
|
|
- result = result && pullP2TimeService.saveOrUpdate(bizPullP2Time);
|
|
|
- } else {
|
|
|
- result = false;
|
|
|
- }
|
|
|
- // 先从新系统中的 biz_pull_p2_time 中获取最新数据
|
|
|
- BizPullP2Time pullProcess = new BizPullP2Time();
|
|
|
- pullProcess.setType("productProcess");
|
|
|
- List<BizPullP2Time> pullProcesses = pullP2TimeService.getList(pullProcess);
|
|
|
- /*
|
|
|
- * 如果 pullDetails 不为空,则获取最后一条数据,做为查询P2的生产计划明细的条件。
|
|
|
- * 这里有个细节,每次从P2中获取生产计划明细,不能都从头开始,否则随着数据量增加,将会重复拉取大量的数据,性能很差
|
|
|
- * 拉取数据后,存入新系统中,每次拉取前,将新系统中 biz_pull_p2_time 的最后一条数据记录的时间,做为条件传递过去
|
|
|
- * P2中,获取领料时间大于上一次拉取时间的新数据,再存入新系统中。
|
|
|
- */
|
|
|
- BizPullP2Time lastPullProcess = null;
|
|
|
- if (pullProcesses.size() > 0) {
|
|
|
- int lastIndex = pullProcesses.size() - 1;
|
|
|
- lastPullProcess = pullProcesses.get(lastIndex);
|
|
|
- }
|
|
|
- QueryWrapper<Sfc10401> sfc10401QueryWrapper = new QueryWrapper<>();
|
|
|
- if (lastPullProcess != null) {
|
|
|
- Date newCondition = lastPullProcess.getPullTime();
|
|
|
- /*
|
|
|
- * 这里应该根据新系统中记录的最大的拉取日期
|
|
|
- * modate:P2中的修改日期,为了避免重复拉取,需要做条件判断。modate必须大于上一次拉取时间
|
|
|
- */
|
|
|
- sfc10401QueryWrapper.apply("modate IS NOT NULL AND modate > {0}", new DateTime(newCondition).toString("yyyy-MM-dd HH:mm:ss"));
|
|
|
- }
|
|
|
-
|
|
|
- List<Sfc10401> sfc10401List = sfc10401Service.getList(sfc10401QueryWrapper);
|
|
|
- QueryWrapper<Sfc10401> sfc10401AllQueryWrapper = new QueryWrapper<>();
|
|
|
- sfc10401AllQueryWrapper.in("(isnull(rtrim(cpart), '') + isnull(rtrim(prver), ''))", sfc10401List.isEmpty() ? Collections.singletonList("0") : sfc10401List.stream().map(v -> v.getCpart().trim() + v.getPrver().trim()).collect(Collectors.toList()));
|
|
|
- List<Sfc10401> all10401List = sfc10401Service.getList(sfc10401AllQueryWrapper);
|
|
|
- List<BizProcess> bases = processService.list();
|
|
|
- List<BizTechnologicalProcessDetail> processDetails = technologicalProcessDetailService.query().list();
|
|
|
- List<BizTechnologicalProcess> processes = technologicalProcessService.list();
|
|
|
- List<Sfc10400> sfc10400List = sfc10400Service.getList(new QueryWrapper<>());
|
|
|
- List<BizTechnologicalProcess> saveProcess = new ArrayList<>();
|
|
|
- List<BizTechnologicalProcess> updateProcess = new ArrayList<>();
|
|
|
- List<BizTechnologicalProcessDetail> saveProcessDetail = new ArrayList<>();
|
|
|
- List<BizTechnologicalProcessDetail> updateProcessDetail = new ArrayList<>();
|
|
|
- QueryWrapper<Sfc10400> 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<Sfc10400> changeSfc10400 = sfc10400Service.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
|
|
|
- // 判断是工序序号的变化还是新增还是其他。
|
|
|
- // 获取对应
|
|
|
- Sfc10400 sfc10400 = sfc10400List.stream().filter(v -> v.getPrver().trim().equals(l.getPrver().trim()) && v.getCpart().trim().equals(l.getCpart().trim())).findFirst().orElse(new Sfc10400());
|
|
|
- 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);
|
|
|
- // 假设旧工序存在则判断是否序号相同 假设不同添加新的工艺信息
|
|
|
- if (oldTech == null) {
|
|
|
- // 假设旧的工艺版本不存在新增一个新的工艺版本。然后新增一个工艺
|
|
|
- if (saveProcess.stream().anyMatch(v -> v.getTechnologyVersion().trim().equals(l.getPrver().trim()) && v.getProductCode().trim().equals(l.getCpart().trim()))) {
|
|
|
- // 判断工艺版本是否已新增过假设已新增过只新增新工艺。
|
|
|
- BizTechnologicalProcess newTech = saveProcess.stream().filter(v -> v.getTechnologyVersion().trim().equals(l.getPrver().trim()) && v.getProductCode().trim().equals(l.getCpart().trim())).findFirst().orElse(new BizTechnologicalProcess());
|
|
|
- BizTechnologicalProcessDetail newProcess = new BizTechnologicalProcessDetail();
|
|
|
- newProcess.setTechnologyVersion(l.getPrver().trim());
|
|
|
- newProcess.setProductCode(l.getCpart().trim());
|
|
|
- newProcess.setProcessCode(l.getPrcode().trim());
|
|
|
- newProcess.setProcessStepNumber(l.getPrseq());
|
|
|
- newProcess.setProcessKey(l.getFinkey());
|
|
|
- newProcess.setProcessAlias(l.getPrna());
|
|
|
- newProcess.setProductShaftCategory(l.getZtype());
|
|
|
- newProcess.setProductShaftCategoryName(l.getZtydm());
|
|
|
- newProcess.setProductDescription(l.getDescr());
|
|
|
- newProcess.setTenantId(Long.parseLong(l.getFacno()));
|
|
|
- newProcess.setTechnologicalProcessId(newTech.getId());
|
|
|
- if (newProcess.getProcessCode() != null && !newProcess.getProcessCode().isEmpty()) {
|
|
|
- BizProcess bizProcess = bases.stream().filter(v -> v.getProcessCode().equals(l.getPrcode().trim())).findFirst().orElse(null);
|
|
|
- newProcess.setProcessId(bizProcess == null ? null : bizProcess.getId());
|
|
|
- }
|
|
|
- if (newTech.getProductCode() != null && !newTech.getProductCode().isEmpty()) {
|
|
|
- BizProduct bizProduct = products.stream().filter(v -> v.getProductCode().trim().equals(sfc10400.getCpart().trim())).findFirst().orElse(null);
|
|
|
- if (bizProduct != null) {
|
|
|
- newProcess.setProductId(bizProduct.getId());
|
|
|
- }
|
|
|
- bizProduct = newProducts.stream().filter(v -> v.getProductCode().trim().equals(sfc10400.getCpart().trim())).findFirst().orElse(null);
|
|
|
- if (bizProduct != null && newProcess.getProductId() == null) {
|
|
|
- newProcess.setProductId(bizProduct.getId());
|
|
|
- }
|
|
|
- }
|
|
|
- saveProcessDetail.add(newProcess);
|
|
|
- } else {
|
|
|
- // 判断工艺版本未新增过则既新增工艺又新增工序
|
|
|
- BizTechnologicalProcess newTech = new BizTechnologicalProcess();
|
|
|
- newTech.setProductCode(sfc10400.getCpart().trim());
|
|
|
- newTech.setTechnologyVersion(l.getPrver());
|
|
|
- newTech.setTenantId(Long.parseLong(l.getFacno()));
|
|
|
- BizTechnologicalProcessDetail newProcess = new BizTechnologicalProcessDetail();
|
|
|
-
|
|
|
- newProcess.setTechnologyVersion(l.getPrver().trim());
|
|
|
- newProcess.setProductCode(l.getCpart().trim());
|
|
|
- newProcess.setProcessCode(l.getPrcode().trim());
|
|
|
- newProcess.setProcessStepNumber(l.getPrseq());
|
|
|
- newProcess.setProcessKey(l.getFinkey());
|
|
|
- newProcess.setProcessAlias(l.getPrna());
|
|
|
- newProcess.setProductShaftCategory(l.getZtype());
|
|
|
- newProcess.setProductShaftCategoryName(l.getZtydm());
|
|
|
- newProcess.setProductDescription(l.getDescr());
|
|
|
- newProcess.setTenantId(Long.parseLong(l.getFacno()));
|
|
|
- if (newTech.getProductCode() != null && !newTech.getProductCode().isEmpty()) {
|
|
|
- BizProduct bizProduct = products.stream().filter(v -> v.getProductCode().trim().equals(sfc10400.getCpart().trim())).findFirst().orElse(null);
|
|
|
- if (bizProduct != null) {
|
|
|
- newProcess.setProductId(bizProduct.getId());
|
|
|
- newTech.setProductId(bizProduct.getId());
|
|
|
- }
|
|
|
- bizProduct = newProducts.stream().filter(v -> v.getProductCode().trim().equals(sfc10400.getCpart().trim())).findFirst().orElse(null);
|
|
|
- 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);
|
|
|
- newProcess.setProcessId(bizProcess == null ? null : bizProcess.getId());
|
|
|
- }
|
|
|
- newTech.setProductShaftCategory(sfc10400.getZtype());
|
|
|
- newTech.setProductShaftCategoryName(sfc10400.getZtydm());
|
|
|
- newTech.setProductSpecification(sfc10400.getSpec());
|
|
|
- newTech.setProductDrawingNumber(sfc10400.getDraw());
|
|
|
- newTech.setProductDescription(sfc10400.getDescr());
|
|
|
- newTech.setId(snowflakeIdWorker.nextId());
|
|
|
- saveProcess.add(newTech);
|
|
|
- newProcess.setTechnologicalProcessId(newTech.getId());
|
|
|
-
|
|
|
- saveProcessDetail.add(newProcess);
|
|
|
- }
|
|
|
- } else {
|
|
|
- BizTechnologicalProcessDetail old = processDetails.stream().filter(v -> v.getTechnologyVersion().equals(l.getPrver().trim()) && v.getProductCode().equals(l.getCpart().trim()) && v.getProcessCode().equals(l.getPrcode().trim()) && v.getTechnologicalProcessId().equals(oldTech.getId())).findFirst().orElse(null);
|
|
|
- Long count = processDetails.stream().filter(v -> v.getTechnologyVersion().equals(l.getPrver().trim()) && v.getProductCode().equals(l.getCpart().trim())).count();
|
|
|
- Long newCount = all10401List.stream().filter(v -> v.getCpart().trim().equals(l.getCpart().trim()) && v.getPrver().trim().equals(l.getPrver().trim())).count();
|
|
|
- if (old == null || !old.getProcessStepNumber().trim().equals(l.getPrseq().trim()) || !newCount.equals(count)) {
|
|
|
- // 假设旧工艺不存在,或新的工艺序号和旧的不同则将旧工艺版本isHistory置为1
|
|
|
- oldTech.setIsHistory(1);
|
|
|
- updateProcess.add(oldTech);
|
|
|
- BizTechnologicalProcess newTech;
|
|
|
- // 判断是否已加过对应工艺
|
|
|
- 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());
|
|
|
- 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(sfc10400.getCpart().trim())).findFirst().orElse(null);
|
|
|
- if (bizProduct != null) {
|
|
|
- newItem.setProductId(bizProduct.getId());
|
|
|
- }
|
|
|
- bizProduct = newProducts.stream().filter(v -> v.getProductCode().trim().equals(sfc10400.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);
|
|
|
- });
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 假设工艺存在则更新工艺信息
|
|
|
- old.setProcessKey(l.getFinkey());
|
|
|
- old.setProcessAlias(l.getPrna());
|
|
|
- old.setProductShaftCategory(l.getZtype());
|
|
|
- old.setProductShaftCategoryName(l.getZtydm());
|
|
|
- old.setProductDescription(l.getDescr());
|
|
|
- updateProcessDetail.add(old);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- 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);
|
|
|
- if (newTech.getProductCode() != null && !newTech.getProductCode().isEmpty()) {
|
|
|
- BizProduct bizProduct = products.stream().filter(v -> v.getProductCode().trim().equals(l.getCpart().trim())).findFirst().orElse(null);
|
|
|
- System.out.println("____________________");
|
|
|
- System.out.println(products.get(0));
|
|
|
- System.out.println("________________________________________");
|
|
|
- System.out.println(bizProduct);
|
|
|
- if (bizProduct != null) {
|
|
|
- newTech.setProductId(bizProduct.getId());
|
|
|
- }
|
|
|
- bizProduct = newProducts.stream().filter(v -> v.getProductCode().trim().equals(l.getCpart().trim())).findFirst().orElse(null);
|
|
|
- if (bizProduct != null && newTech.getProductId() == null) {
|
|
|
- newTech.setProductId(bizProduct.getId());
|
|
|
- }
|
|
|
- }
|
|
|
- newTech.setIsHistory(0);
|
|
|
- newTech.setId(snowflakeIdWorker.nextId());
|
|
|
- saveProcess.add(newTech);
|
|
|
- // 添加所有工艺明细
|
|
|
- List<Sfc10401> itemProcesses = allChangeSfc10401.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);
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
- });
|
|
|
- List<BizTechnologicalProcessDetail> distinctSaveProcessDetail = saveProcessDetail.stream().filter(distinctByKey(e -> e.getProductCode() + e.getProcessCode() + e.getTechnologyVersion() + e.getProcessStepNumber() + e.getTechnologicalProcessId())).collect(Collectors.toList());
|
|
|
- if ((saveProcess.isEmpty() || technologicalProcessService.saveBatch(saveProcess)) && (updateProcess.isEmpty() || technologicalProcessService.updateBatchById(updateProcess)) && (distinctSaveProcessDetail.isEmpty() || technologicalProcessDetailService.saveBatch(distinctSaveProcessDetail)) && (updateProcessDetail.isEmpty() || technologicalProcessDetailService.updateBatchById(updateProcessDetail))) {
|
|
|
- BizPullP2Time bizPullP2Time = new BizPullP2Time();
|
|
|
- // 将当前时间赋值给 pullTime 属性
|
|
|
- bizPullP2Time.setPullTime(new Date());
|
|
|
- bizPullP2Time.setType("productProcess");
|
|
|
- // 保存数据
|
|
|
- pullP2TimeService.saveOrUpdate(bizPullP2Time);
|
|
|
-
|
|
|
- BizPullP2Time bizPullP2Tech = new BizPullP2Time();
|
|
|
- // 将当前时间赋值给 pullTime 属性
|
|
|
- bizPullP2Tech.setPullTime(new Date());
|
|
|
- bizPullP2Tech.setType("productTech");
|
|
|
- // 保存数据
|
|
|
-// pullP2TimeService.saveOrUpdate(bizPullP2Tech);
|
|
|
- result = result && pullP2TimeService.saveOrUpdate(bizPullP2Tech);
|
|
|
- } else {
|
|
|
- result = false;
|
|
|
- }
|
|
|
+ System.out.println(products.get(0));
|
|
|
+// List<BizProduct> newProducts = new ArrayList<>();
|
|
|
+// List<BizProduct> changeProducts = new ArrayList<>();
|
|
|
+// List<SysUser> userList = sysUserService.getList();
|
|
|
+// SysDictData conditions = new SysDictData();
|
|
|
+// conditions.setDictType("product_status_code");
|
|
|
+// List<SysDictData> dictList = sysDictDataService.selectDictDataList(conditions);
|
|
|
+// List<BizShaftCategory> categories = bizShaftCategoryService.query().list();
|
|
|
+// inc10100List.forEach(l -> {
|
|
|
+// if (products.stream().anyMatch(v -> v.getProductCode().equals(l.getPart().trim()) && v.getPreStock().equals(l.getPrloc().trim()))) {
|
|
|
+// // 已插入产品
|
|
|
+// BizProduct old = products.stream().filter(v -> v.getProductCode().equals(l.getPart().trim()) && v.getPreStock().equals(l.getPrloc().trim())).findFirst().orElse(null);
|
|
|
+// if (old != null) {
|
|
|
+// old.setType(l.getType());
|
|
|
+// old.setShaftBroadCategoryCode(l.getDtype());
|
|
|
+// old.setShaftCategoryCode(l.getZtype());
|
|
|
+// if (old.getShaftCategoryCode() != null) {
|
|
|
+// BizShaftCategory bizShaftCategory = categories.stream().filter(v -> v.getSubCategoryCode().equals(old.getShaftCategoryCode())).findFirst().orElse(null);
|
|
|
+// old.setShaftCategoryId(bizShaftCategory != null ? bizShaftCategory.getId() : null);
|
|
|
+// }
|
|
|
+// if (old.getShaftBroadCategoryCode() != null) {
|
|
|
+//
|
|
|
+// }
|
|
|
+// old.setSpecification(l.getSpec());
|
|
|
+// old.setDrawingNumber(l.getDraw());
|
|
|
+// old.setCompanyAlias(l.getKhjc());
|
|
|
+// old.setMaterialNum(l.getKhpart());
|
|
|
+// old.setCompanyCode(l.getCust());
|
|
|
+// old.setDescription(l.getDescr());
|
|
|
+// old.setProductionTenantId(l.getSfacno() != null ? Long.parseLong(l.getSfacno()) : null);
|
|
|
+// old.setDiameter(l.getDzj());
|
|
|
+// old.setLenght(l.getLenght());
|
|
|
+// old.setThickness(BigDecimal.valueOf(l.getAbbr()));
|
|
|
+// old.setDensity(l.getDensity());
|
|
|
+// old.setSalesmanCode(l.getXsyno());
|
|
|
+// if (old.getSalesmanCode() != null) {
|
|
|
+// SysUser user = userList.stream().filter(v -> v.getUserName().equals(old.getSalesmanCode())).findFirst().orElse(null);
|
|
|
+// old.setSalesmanId(user != null ? user.getUserId() : null);
|
|
|
+// }
|
|
|
+// old.setStockKeeperCode(l.getBgyno());
|
|
|
+// if (old.getStockKeeperCode() != null) {
|
|
|
+// SysUser bgy = userList.stream().filter(v -> v.getUserName().equals(old.getStockKeeperCode())).findFirst().orElse(null);
|
|
|
+// old.setStockKeeperId(bgy != null ? bgy.getUserId() : null);
|
|
|
+// }
|
|
|
+// old.setDispatcherCode(l.getDdyno());
|
|
|
+// if (old.getDispatcherCode() != null) {
|
|
|
+// SysUser ddy = userList.stream().filter(v -> v.getUserName().equals(old.getDispatcherCode())).findFirst().orElse(null);
|
|
|
+// old.setDispatcherId(ddy != null ? ddy.getUserId() : null);
|
|
|
+// }
|
|
|
+// old.setMaterialCode(l.getPhcode());
|
|
|
+// if (old.getMaterialCode() != null) {
|
|
|
+// // 目前没有材料表
|
|
|
+// }
|
|
|
+// old.setProductStatusCode(l.getStatus());
|
|
|
+// if (old.getProductStatusCode() != null) {
|
|
|
+// SysDictData dictData = dictList.stream().filter(v -> v.getDictValue().equals(old.getProductStatusCode())).findFirst().orElse(null);
|
|
|
+// old.setProductStatusId(dictData != null ? dictData.getDictCode() : null);
|
|
|
+// }
|
|
|
+// old.setTechnicianCode(l.getJsyno());
|
|
|
+// if (old.getTechnicianCode() != null) {
|
|
|
+// SysUser jsy = userList.stream().filter(v -> v.getUserName().equals(old.getTechnicianCode())).findFirst().orElse(null);
|
|
|
+// old.setTechnicianId(jsy != null ? jsy.getUserId() : null);
|
|
|
+// }
|
|
|
+// old.setRemark(l.getRemark());
|
|
|
+// changeProducts.add(old);
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// // 新产品
|
|
|
+// BizProduct newProduct = new BizProduct();
|
|
|
+// newProduct.setProductCode(l.getPart());
|
|
|
+// newProduct.setMaterialNum(l.getKhpart());
|
|
|
+// newProduct.setPreStock(l.getPrloc());
|
|
|
+// newProduct.setType(l.getType());
|
|
|
+// newProduct.setShaftBroadCategoryCode(l.getDtype());
|
|
|
+// newProduct.setShaftCategoryCode(l.getZtype());
|
|
|
+// if (newProduct.getShaftCategoryCode() != null) {
|
|
|
+// BizShaftCategory bizShaftCategory = categories.stream().filter(v -> v.getSubCategoryCode().equals(newProduct.getShaftCategoryCode())).findFirst().orElse(null);
|
|
|
+// newProduct.setShaftCategoryId(bizShaftCategory != null ? bizShaftCategory.getId() : null);
|
|
|
+// }
|
|
|
+// if (newProduct.getShaftBroadCategoryCode() != null) {
|
|
|
//
|
|
|
-// QueryWrapper<Sfc10401> test = new QueryWrapper<>();
|
|
|
+// }
|
|
|
+// newProduct.setSpecification(l.getSpec());
|
|
|
+// newProduct.setDrawingNumber(l.getDraw());
|
|
|
+// newProduct.setCompanyAlias(l.getKhjc());
|
|
|
+// newProduct.setCompanyCode(l.getCust());
|
|
|
+// newProduct.setDescription(l.getDescr());
|
|
|
+// newProduct.setProductionTenantId(l.getSfacno() != null ? Long.parseLong(l.getSfacno()) : null);
|
|
|
+// newProduct.setDiameter(l.getDzj());
|
|
|
+// newProduct.setLenght(l.getLenght());
|
|
|
+// newProduct.setThickness(BigDecimal.valueOf(l.getAbbr()));
|
|
|
+// newProduct.setDensity(l.getDensity());
|
|
|
+// newProduct.setSalesmanCode(l.getXsyno());
|
|
|
+// if (newProduct.getSalesmanCode() != null) {
|
|
|
+// SysUser user = userList.stream().filter(v -> v.getUserName().equals(newProduct.getSalesmanCode())).findFirst().orElse(null);
|
|
|
+// newProduct.setSalesmanId(user != null ? user.getUserId() : null);
|
|
|
+// }
|
|
|
+// newProduct.setStockKeeperCode(l.getBgyno());
|
|
|
+// if (newProduct.getStockKeeperCode() != null) {
|
|
|
+// SysUser user = userList.stream().filter(v -> v.getUserName().equals(newProduct.getStockKeeperCode())).findFirst().orElse(null);
|
|
|
+// newProduct.setStockKeeperId(user != null ? user.getUserId() : null);
|
|
|
+// }
|
|
|
+// newProduct.setDispatcherCode(l.getDdyno());
|
|
|
+// if (newProduct.getDispatcherCode() != null) {
|
|
|
+// SysUser user = userList.stream().filter(v -> v.getUserName().equals(newProduct.getDispatcherCode())).findFirst().orElse(null);
|
|
|
+// newProduct.setDispatcherId(user != null ? user.getUserId() : null);
|
|
|
+// }
|
|
|
+// newProduct.setMaterialCode(l.getPhcode());
|
|
|
+// if (newProduct.getMaterialCode() != null) {
|
|
|
+// // 目前没有材料表
|
|
|
+// }
|
|
|
+// newProduct.setProductStatusCode(l.getStatus());
|
|
|
+// if (newProduct.getProductStatusCode() != null) {
|
|
|
+// SysDictData dictData = dictList.stream().filter(v -> v.getDictValue().equals(newProduct.getProductStatusCode())).findFirst().orElse(null);
|
|
|
+// newProduct.setProductStatusId(dictData != null ? dictData.getDictCode() : null);
|
|
|
+// }
|
|
|
+// newProduct.setTechnicianCode(l.getJsyno());
|
|
|
+// if (newProduct.getTechnicianCode() != null) {
|
|
|
+// SysUser jsy = userList.stream().filter(v -> v.getUserName().equals(newProduct.getTechnicianCode())).findFirst().orElse(null);
|
|
|
+// newProduct.setTechnicianId(jsy != null ? jsy.getUserId() : null);
|
|
|
+// }
|
|
|
+// newProduct.setRemark(l.getRemark());
|
|
|
+// newProducts.add(newProduct);
|
|
|
+// }
|
|
|
+// });
|
|
|
+// if ((newProducts.isEmpty() || productService.saveBatch(newProducts)) && (changeProducts.isEmpty() || productService.updateBatchById(changeProducts))) {
|
|
|
+// BizPullP2Time bizPullP2Time = new BizPullP2Time();
|
|
|
+// // 将当前时间赋值给 pullTime 属性
|
|
|
+// bizPullP2Time.setPullTime(new Date());
|
|
|
+// bizPullP2Time.setType("product");
|
|
|
+// // 保存数据
|
|
|
+// pullP2TimeService.saveOrUpdate(bizPullP2Time);
|
|
|
+// result = result && pullP2TimeService.saveOrUpdate(bizPullP2Time);
|
|
|
+// } else {
|
|
|
+// result = false;
|
|
|
+// }
|
|
|
+// // 先从新系统中的 biz_pull_p2_time 中获取最新数据
|
|
|
+// BizPullP2Time pullProcess = new BizPullP2Time();
|
|
|
+// pullProcess.setType("productProcess");
|
|
|
+// List<BizPullP2Time> pullProcesses = pullP2TimeService.getList(pullProcess);
|
|
|
+// /*
|
|
|
+// * 如果 pullDetails 不为空,则获取最后一条数据,做为查询P2的生产计划明细的条件。
|
|
|
+// * 这里有个细节,每次从P2中获取生产计划明细,不能都从头开始,否则随着数据量增加,将会重复拉取大量的数据,性能很差
|
|
|
+// * 拉取数据后,存入新系统中,每次拉取前,将新系统中 biz_pull_p2_time 的最后一条数据记录的时间,做为条件传递过去
|
|
|
+// * P2中,获取领料时间大于上一次拉取时间的新数据,再存入新系统中。
|
|
|
+// */
|
|
|
+// BizPullP2Time lastPullProcess = null;
|
|
|
+// if (pullProcesses.size() > 0) {
|
|
|
+// int lastIndex = pullProcesses.size() - 1;
|
|
|
+// lastPullProcess = pullProcesses.get(lastIndex);
|
|
|
+// }
|
|
|
+// QueryWrapper<Sfc10401> sfc10401QueryWrapper = new QueryWrapper<>();
|
|
|
// if (lastPullProcess != null) {
|
|
|
// Date newCondition = lastPullProcess.getPullTime();
|
|
|
// /*
|
|
|
// * 这里应该根据新系统中记录的最大的拉取日期
|
|
|
// * modate:P2中的修改日期,为了避免重复拉取,需要做条件判断。modate必须大于上一次拉取时间
|
|
|
// */
|
|
|
-// test.apply("modate IS NOT NULL AND modate > {0}", new DateTime(newCondition).toString("yyyy-MM-dd HH:mm:ss"));
|
|
|
+// sfc10401QueryWrapper.apply("modate IS NOT NULL AND modate > {0}", new DateTime(newCondition).toString("yyyy-MM-dd HH:mm:ss"));
|
|
|
+// }
|
|
|
+//
|
|
|
+// List<Sfc10401> sfc10401List = sfc10401Service.getList(sfc10401QueryWrapper);
|
|
|
+// QueryWrapper<Sfc10401> sfc10401AllQueryWrapper = new QueryWrapper<>();
|
|
|
+// sfc10401AllQueryWrapper.in("(isnull(rtrim(cpart), '') + isnull(rtrim(prver), ''))", sfc10401List.isEmpty() ? Collections.singletonList("0") : sfc10401List.stream().map(v -> v.getCpart().trim() + v.getPrver().trim()).collect(Collectors.toList()));
|
|
|
+// List<Sfc10401> all10401List = sfc10401Service.getList(sfc10401AllQueryWrapper);
|
|
|
+// List<BizProcess> bases = processService.list();
|
|
|
+// List<BizTechnologicalProcessDetail> processDetails = technologicalProcessDetailService.query().list();
|
|
|
+// List<BizTechnologicalProcess> processes = technologicalProcessService.list();
|
|
|
+// List<Sfc10400> sfc10400List = sfc10400Service.getList(new QueryWrapper<>());
|
|
|
+// List<BizTechnologicalProcess> saveProcess = new ArrayList<>();
|
|
|
+// List<BizTechnologicalProcess> updateProcess = new ArrayList<>();
|
|
|
+// List<BizTechnologicalProcessDetail> saveProcessDetail = new ArrayList<>();
|
|
|
+// List<BizTechnologicalProcessDetail> updateProcessDetail = new ArrayList<>();
|
|
|
+// QueryWrapper<Sfc10400> 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<Sfc10400> changeSfc10400 = sfc10400Service.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
|
|
|
+// // 判断是工序序号的变化还是新增还是其他。
|
|
|
+// // 获取对应
|
|
|
+// Sfc10400 sfc10400 = sfc10400List.stream().filter(v -> v.getPrver().trim().equals(l.getPrver().trim()) && v.getCpart().trim().equals(l.getCpart().trim())).findFirst().orElse(new Sfc10400());
|
|
|
+// 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);
|
|
|
+// // 假设旧工序存在则判断是否序号相同 假设不同添加新的工艺信息
|
|
|
+// if (oldTech == null) {
|
|
|
+// // 假设旧的工艺版本不存在新增一个新的工艺版本。然后新增一个工艺
|
|
|
+// if (saveProcess.stream().anyMatch(v -> v.getTechnologyVersion().trim().equals(l.getPrver().trim()) && v.getProductCode().trim().equals(l.getCpart().trim()))) {
|
|
|
+// // 判断工艺版本是否已新增过假设已新增过只新增新工艺。
|
|
|
+// BizTechnologicalProcess newTech = saveProcess.stream().filter(v -> v.getTechnologyVersion().trim().equals(l.getPrver().trim()) && v.getProductCode().trim().equals(l.getCpart().trim())).findFirst().orElse(new BizTechnologicalProcess());
|
|
|
+// BizTechnologicalProcessDetail newProcess = new BizTechnologicalProcessDetail();
|
|
|
+// newProcess.setTechnologyVersion(l.getPrver().trim());
|
|
|
+// newProcess.setProductCode(l.getCpart().trim());
|
|
|
+// newProcess.setProcessCode(l.getPrcode().trim());
|
|
|
+// newProcess.setProcessStepNumber(l.getPrseq());
|
|
|
+// newProcess.setProcessKey(l.getFinkey());
|
|
|
+// newProcess.setProcessAlias(l.getPrna());
|
|
|
+// newProcess.setProductShaftCategory(l.getZtype());
|
|
|
+// newProcess.setProductShaftCategoryName(l.getZtydm());
|
|
|
+// newProcess.setProductDescription(l.getDescr());
|
|
|
+// newProcess.setTenantId(Long.parseLong(l.getFacno()));
|
|
|
+// newProcess.setTechnologicalProcessId(newTech.getId());
|
|
|
+// if (newProcess.getProcessCode() != null && !newProcess.getProcessCode().isEmpty()) {
|
|
|
+// BizProcess bizProcess = bases.stream().filter(v -> v.getProcessCode().equals(l.getPrcode().trim())).findFirst().orElse(null);
|
|
|
+// newProcess.setProcessId(bizProcess == null ? null : bizProcess.getId());
|
|
|
+// }
|
|
|
+// if (newTech.getProductCode() != null && !newTech.getProductCode().isEmpty()) {
|
|
|
+// BizProduct bizProduct = products.stream().filter(v -> v.getProductCode().trim().equals(sfc10400.getCpart().trim())).findFirst().orElse(null);
|
|
|
+// if (bizProduct != null) {
|
|
|
+// newProcess.setProductId(bizProduct.getId());
|
|
|
+// }
|
|
|
+// bizProduct = newProducts.stream().filter(v -> v.getProductCode().trim().equals(sfc10400.getCpart().trim())).findFirst().orElse(null);
|
|
|
+// if (bizProduct != null && newProcess.getProductId() == null) {
|
|
|
+// newProcess.setProductId(bizProduct.getId());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// saveProcessDetail.add(newProcess);
|
|
|
+// } else {
|
|
|
+// // 判断工艺版本未新增过则既新增工艺又新增工序
|
|
|
+// BizTechnologicalProcess newTech = new BizTechnologicalProcess();
|
|
|
+// newTech.setProductCode(sfc10400.getCpart().trim());
|
|
|
+// newTech.setTechnologyVersion(l.getPrver());
|
|
|
+// newTech.setTenantId(Long.parseLong(l.getFacno()));
|
|
|
+// BizTechnologicalProcessDetail newProcess = new BizTechnologicalProcessDetail();
|
|
|
+//
|
|
|
+// newProcess.setTechnologyVersion(l.getPrver().trim());
|
|
|
+// newProcess.setProductCode(l.getCpart().trim());
|
|
|
+// newProcess.setProcessCode(l.getPrcode().trim());
|
|
|
+// newProcess.setProcessStepNumber(l.getPrseq());
|
|
|
+// newProcess.setProcessKey(l.getFinkey());
|
|
|
+// newProcess.setProcessAlias(l.getPrna());
|
|
|
+// newProcess.setProductShaftCategory(l.getZtype());
|
|
|
+// newProcess.setProductShaftCategoryName(l.getZtydm());
|
|
|
+// newProcess.setProductDescription(l.getDescr());
|
|
|
+// newProcess.setTenantId(Long.parseLong(l.getFacno()));
|
|
|
+// if (newTech.getProductCode() != null && !newTech.getProductCode().isEmpty()) {
|
|
|
+// BizProduct bizProduct = products.stream().filter(v -> v.getProductCode().trim().equals(sfc10400.getCpart().trim())).findFirst().orElse(null);
|
|
|
+// if (bizProduct != null) {
|
|
|
+// newProcess.setProductId(bizProduct.getId());
|
|
|
+// newTech.setProductId(bizProduct.getId());
|
|
|
+// }
|
|
|
+// bizProduct = newProducts.stream().filter(v -> v.getProductCode().trim().equals(sfc10400.getCpart().trim())).findFirst().orElse(null);
|
|
|
+// 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);
|
|
|
+// newProcess.setProcessId(bizProcess == null ? null : bizProcess.getId());
|
|
|
+// }
|
|
|
+// newTech.setProductShaftCategory(sfc10400.getZtype());
|
|
|
+// newTech.setProductShaftCategoryName(sfc10400.getZtydm());
|
|
|
+// newTech.setProductSpecification(sfc10400.getSpec());
|
|
|
+// newTech.setProductDrawingNumber(sfc10400.getDraw());
|
|
|
+// newTech.setProductDescription(sfc10400.getDescr());
|
|
|
+// newTech.setId(snowflakeIdWorker.nextId());
|
|
|
+// saveProcess.add(newTech);
|
|
|
+// newProcess.setTechnologicalProcessId(newTech.getId());
|
|
|
+//
|
|
|
+// saveProcessDetail.add(newProcess);
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// BizTechnologicalProcessDetail old = processDetails.stream().filter(v -> v.getTechnologyVersion().equals(l.getPrver().trim()) && v.getProductCode().equals(l.getCpart().trim()) && v.getProcessCode().equals(l.getPrcode().trim()) && v.getTechnologicalProcessId().equals(oldTech.getId())).findFirst().orElse(null);
|
|
|
+// Long count = processDetails.stream().filter(v -> v.getTechnologyVersion().equals(l.getPrver().trim()) && v.getProductCode().equals(l.getCpart().trim())).count();
|
|
|
+// Long newCount = all10401List.stream().filter(v -> v.getCpart().trim().equals(l.getCpart().trim()) && v.getPrver().trim().equals(l.getPrver().trim())).count();
|
|
|
+// if (old == null || !old.getProcessStepNumber().trim().equals(l.getPrseq().trim()) || !newCount.equals(count)) {
|
|
|
+// // 假设旧工艺不存在,或新的工艺序号和旧的不同则将旧工艺版本isHistory置为1
|
|
|
+// oldTech.setIsHistory(1);
|
|
|
+// updateProcess.add(oldTech);
|
|
|
+// BizTechnologicalProcess newTech;
|
|
|
+// // 判断是否已加过对应工艺
|
|
|
+// 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());
|
|
|
+// 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(sfc10400.getCpart().trim())).findFirst().orElse(null);
|
|
|
+// if (bizProduct != null) {
|
|
|
+// newItem.setProductId(bizProduct.getId());
|
|
|
+// }
|
|
|
+// bizProduct = newProducts.stream().filter(v -> v.getProductCode().trim().equals(sfc10400.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);
|
|
|
+// });
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// // 假设工艺存在则更新工艺信息
|
|
|
+// old.setProcessKey(l.getFinkey());
|
|
|
+// old.setProcessAlias(l.getPrna());
|
|
|
+// old.setProductShaftCategory(l.getZtype());
|
|
|
+// old.setProductShaftCategoryName(l.getZtydm());
|
|
|
+// old.setProductDescription(l.getDescr());
|
|
|
+// updateProcessDetail.add(old);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// });
|
|
|
+// 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);
|
|
|
+// if (newTech.getProductCode() != null && !newTech.getProductCode().isEmpty()) {
|
|
|
+// BizProduct bizProduct = products.stream().filter(v -> v.getProductCode().trim().equals(l.getCpart().trim())).findFirst().orElse(null);
|
|
|
+// System.out.println("____________________");
|
|
|
+// System.out.println(products.get(0));
|
|
|
+// System.out.println("________________________________________");
|
|
|
+// System.out.println(bizProduct);
|
|
|
+// if (bizProduct != null) {
|
|
|
+// newTech.setProductId(bizProduct.getId());
|
|
|
+// }
|
|
|
+// bizProduct = newProducts.stream().filter(v -> v.getProductCode().trim().equals(l.getCpart().trim())).findFirst().orElse(null);
|
|
|
+// if (bizProduct != null && newTech.getProductId() == null) {
|
|
|
+// newTech.setProductId(bizProduct.getId());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// newTech.setIsHistory(0);
|
|
|
+// newTech.setId(snowflakeIdWorker.nextId());
|
|
|
+// saveProcess.add(newTech);
|
|
|
+// // 添加所有工艺明细
|
|
|
+// List<Sfc10401> itemProcesses = allChangeSfc10401.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);
|
|
|
+// });
|
|
|
+//
|
|
|
+// }
|
|
|
+// });
|
|
|
+// List<BizTechnologicalProcessDetail> distinctSaveProcessDetail = saveProcessDetail.stream().filter(distinctByKey(e -> e.getProductCode() + e.getProcessCode() + e.getTechnologyVersion() + e.getProcessStepNumber() + e.getTechnologicalProcessId())).collect(Collectors.toList());
|
|
|
+// if ((saveProcess.isEmpty() || technologicalProcessService.saveBatch(saveProcess)) && (updateProcess.isEmpty() || technologicalProcessService.updateBatchById(updateProcess)) && (distinctSaveProcessDetail.isEmpty() || technologicalProcessDetailService.saveBatch(distinctSaveProcessDetail)) && (updateProcessDetail.isEmpty() || technologicalProcessDetailService.updateBatchById(updateProcessDetail))) {
|
|
|
+// BizPullP2Time bizPullP2Time = new BizPullP2Time();
|
|
|
+// // 将当前时间赋值给 pullTime 属性
|
|
|
+// bizPullP2Time.setPullTime(new Date());
|
|
|
+// bizPullP2Time.setType("productProcess");
|
|
|
+// // 保存数据
|
|
|
+// pullP2TimeService.saveOrUpdate(bizPullP2Time);
|
|
|
+//
|
|
|
+// BizPullP2Time bizPullP2Tech = new BizPullP2Time();
|
|
|
+// // 将当前时间赋值给 pullTime 属性
|
|
|
+// bizPullP2Tech.setPullTime(new Date());
|
|
|
+// bizPullP2Tech.setType("productTech");
|
|
|
+// // 保存数据
|
|
|
+//// pullP2TimeService.saveOrUpdate(bizPullP2Tech);
|
|
|
+// result = result && pullP2TimeService.saveOrUpdate(bizPullP2Tech);
|
|
|
+// } else {
|
|
|
+// result = false;
|
|
|
// }
|
|
|
-// sfc10401Service.getList(test);
|
|
|
+////
|
|
|
+//// QueryWrapper<Sfc10401> test = new QueryWrapper<>();
|
|
|
+//// if (lastPullProcess != null) {
|
|
|
+//// Date newCondition = lastPullProcess.getPullTime();
|
|
|
+//// /*
|
|
|
+//// * 这里应该根据新系统中记录的最大的拉取日期
|
|
|
+//// * modate:P2中的修改日期,为了避免重复拉取,需要做条件判断。modate必须大于上一次拉取时间
|
|
|
+//// */
|
|
|
+//// test.apply("modate IS NOT NULL AND modate > {0}", new DateTime(newCondition).toString("yyyy-MM-dd HH:mm:ss"));
|
|
|
+//// }
|
|
|
+//// sfc10401Service.getList(test);
|
|
|
return toAjax(result);
|
|
|
}
|
|
|
|