From 3b55234db1169826e52bd540e4f3cef9dc58e23b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 21 八月 2025 18:56:07 +0800
Subject: [PATCH] 增加勤哲导入接口
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/QinzheFgb.java | 5 ++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/controller/QinzheFgbController.java | 11 +++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java | 8 +++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/vo/QinzheFgbExcel.java | 25 ++++++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/QinzheFgbService.java | 53 ++++++++++++++++++++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/LockFlowService.java | 6 ++-
6 files changed, 105 insertions(+), 3 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/controller/QinzheFgbController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/controller/QinzheFgbController.java
index 5ca9460..984434d 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/controller/QinzheFgbController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/controller/QinzheFgbController.java
@@ -43,4 +43,15 @@
return R.data(qinzheFgbService.lambdaQuery().like(StringUtils.isNotBlank(ljh), QinzheFgb::getLjh,ljh).like(StringUtils.isNotBlank(zggy), QinzheFgb::getZggy,zggy).page(Condition.getPage(query)));
}
+ @Operation(summary = "瀵煎叆鍕ゅ摬鍒嗗伐琛�", description = "瀵煎叆鍕ゅ摬鍒嗗伐琛�")
+ @PostMapping("/import-qinzhe")
+ public R<ImportResult> importQinzheFgb(@RequestParam MultipartFile file) {
+ try {
+ qinzheFgbService.importFgb(file);
+ return R.success("瀵煎叆鎴愬姛");
+ }catch(Exception e) {
+ log.error("瀵煎叆寮傚父",e);
+ return R.fail(e.getMessage());
+ }
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/QinzheFgb.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/QinzheFgb.java
index f13c73d..67c246b 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/QinzheFgb.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/QinzheFgb.java
@@ -25,4 +25,9 @@
*/
private String zggy;
+ /**
+ * 鏁版嵁鏉ユ簮: QZ/MDM
+ */
+ private String source;
+
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/QinzheFgbService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/QinzheFgbService.java
index f7591aa..756d582 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/QinzheFgbService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/QinzheFgbService.java
@@ -2,10 +2,19 @@
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
@@ -34,4 +43,48 @@
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;
+ }
+
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/vo/QinzheFgbExcel.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/vo/QinzheFgbExcel.java
new file mode 100644
index 0000000..094bd72
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/vo/QinzheFgbExcel.java
@@ -0,0 +1,25 @@
+package org.springblade.mdm.basesetting.producedivision.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import lombok.Data;
+
+/**
+ * 鍕ゅ摬鍒嗗伐琛╡xcel鏍煎紡
+ */
+@Data
+public class QinzheFgbExcel {
+ @ColumnWidth(20)
+ @ExcelProperty("浜у搧鍙�")
+ private String cph;
+
+ @ColumnWidth(15)
+ @ExcelProperty("涓荤宸ヨ壓")
+ private String zggy;
+
+
+ @ColumnWidth(10)
+ @ExcelProperty("闆剁粍浠跺彿")
+ private String ljh;
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/LockFlowService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/LockFlowService.java
index a235061..47a0d67 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/LockFlowService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/LockFlowService.java
@@ -4,6 +4,7 @@
import org.flowable.engine.IdentityService;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.runtime.ProcessInstance;
+import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.mdm.basesetting.machine.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
@@ -28,9 +29,7 @@
private final NcNodeService nodeService;
private final RuntimeService runtimeService;
private final IdentityService identityService;
- private final MachineService machineService;
private final ProduceDivisionService produceDivisionService;
- private final NodeDeptQueryService nodeDeptQueryService;
private final FlowCommonService flowCommonService;
private final FlowProgramFileService flowProgramFileService;
/**
@@ -39,6 +38,9 @@
@Transactional
public void startUnlock(Long nodeId){
NcNode programPackage = nodeService.getById(nodeId);
+ if(flowCommonService.isProcessInstanceActive(programPackage.getProcessInstanceId())){
+ throw new ServiceException("娴佺▼姝e湪杩涜");
+ }
Map<String, Object> vars = new HashMap<>();
flowCommonService.putFlowVariablesByNode(vars,programPackage);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
index 72b56cd..e5c132e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
@@ -263,7 +263,13 @@
//鏍规嵁鍐呴儴鏂囦欢锛岃鍙栧拰鍒嗘瀽绋嬪簭鍖呭拰绋嬪簭鏂囦欢鏁版嵁
List<String> dirList = entryNameList.stream().filter(s -> s.endsWith("/")).toList();
for(String dir : dirList){
- String programPackageName = StringUtils.removeEnd(dir,"/");
+ String programPackageName1 = StringUtils.removeEnd(dir,"/");
+ String folderName = StringUtils.removeEnd(dir,"/");
+
+ PackageAndProcessEdition pkgAndEdition = parseProgramPackageFromFolderName(folderName);
+ String programPackageName = pkgAndEdition.getProgramPackageName();
+ //111
+
Optional<NcNode> optPackageNode = allAcceptPackages.stream().filter(node -> StringUtils.equals(node.getName(),programPackageName)).findFirst();
if(optPackageNode.isEmpty()){
--
Gitblit v1.9.3