From a117bd6e8ca607537e4f1889b474bcb0e24ba32b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 21 八月 2025 15:10:21 +0800
Subject: [PATCH] 导出程序包内文件夹增加工序版次
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmRoleMapper.java | 8 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java | 20 --
blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowFileController.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/ParamService.java | 25 ++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java | 9
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java | 8
blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/mapper/MachineFileMapper.java | 9 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmRoleService.java | 30 +++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmUserMapper.java | 3
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java | 53 +++++++-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/MdmRole.java | 38 ++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmUserMapper.xml | 15 ++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java | 5
blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/vo/ProgramNameVO.java | 2
blade-service/blade-mdm/src/main/resources/logback.xml | 7 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/mapper/MachineFileMapper.xml | 4
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/service/NcProgramExportInnerService.java | 4
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/MdmUser.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java | 13 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmRoleMapper.xml | 6 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmUserService.java | 38 ++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileHandleController.java | 7 +
23 files changed, 260 insertions(+), 50 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/MdmRole.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/MdmRole.java
new file mode 100644
index 0000000..51fbf4a
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/MdmRole.java
@@ -0,0 +1,38 @@
+package org.springblade.mdm.basesetting.producedivision.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+import java.io.Serializable;
+
+@Data
+@TableName("blade_role")
+public class MdmRole implements Serializable {
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private Long id;
+ @Schema(description = "绉熸埛ID")
+ private String tenantId;
+ /**
+ * 鐢ㄦ埛缂栧彿
+ */
+ private String roleAlias;
+ /**
+ * 璐﹀彿
+ */
+ private String roleName;
+ @Schema(description = "涓氬姟鐘舵��")
+ private Integer status;
+
+ /**
+ * 鏄惁宸插垹闄�
+ */
+ @TableLogic
+ @Schema(description = "鏄惁宸插垹闄�")
+ private Integer isDeleted;
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/MdmUser.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/MdmUser.java
index d8a29d3..4a6a382 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/MdmUser.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/entity/MdmUser.java
@@ -26,4 +26,6 @@
* 閫楀彿鍒嗛殧鐨勬暟鎹�
*/
private String roleId;
+
+ private transient boolean manager = false;
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmRoleMapper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmRoleMapper.java
new file mode 100644
index 0000000..526b1eb
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmRoleMapper.java
@@ -0,0 +1,8 @@
+package org.springblade.mdm.basesetting.producedivision.mapper;
+
+import org.springblade.core.mp.mapper.BladeMapper;
+import org.springblade.mdm.basesetting.producedivision.entity.MdmRole;
+
+public interface MdmRoleMapper extends BladeMapper<MdmRole> {
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmRoleMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmRoleMapper.xml
new file mode 100644
index 0000000..81e4e8a
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmRoleMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.mdm.basesetting.producedivision.mapper.MdmRoleMapper">
+
+
+</mapper>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmUserMapper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmUserMapper.java
index d0297bf..cf0f4b7 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmUserMapper.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmUserMapper.java
@@ -3,6 +3,9 @@
import org.springblade.core.mp.mapper.BladeMapper;
import org.springblade.mdm.basesetting.producedivision.entity.MdmUser;
+import java.util.List;
+
public interface MdmUserMapper extends BladeMapper<MdmUser> {
+ List<MdmUser> selectByRoleIds(List<String> idList);
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmUserMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmUserMapper.xml
index 77acff8..6afbbd4 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmUserMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/MdmUserMapper.xml
@@ -3,4 +3,19 @@
<mapper namespace="org.springblade.mdm.basesetting.producedivision.mapper.MdmUserMapper">
+ <select id="selectByRoleIds" resultType="org.springblade.mdm.basesetting.producedivision.entity.MdmUser">
+ SELECT id,account,name,real_name,role_id,dept_id FROM blade_user
+ <where>
+ <if test="idList != null and idList.size() > 0">
+
+ <foreach collection="idList" item="item" separator=" OR ">
+ role_id like ${item}
+ </foreach>
+ </if>
+ <!-- 濡傛灉鍒楄〃涓虹┖锛屽彲浠ュ姞涓�涓案鍋囨潯浠堕伩鍏嶅叏琛ㄦ壂鎻忥紝渚嬪锛�-->
+ <if test="idList == null or idList.size() == 0">
+ AND 1 = 0
+ </if>
+ </where>
+ </select>
</mapper>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmRoleService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmRoleService.java
new file mode 100644
index 0000000..168f14c
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmRoleService.java
@@ -0,0 +1,30 @@
+package org.springblade.mdm.basesetting.producedivision.service;
+
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.mdm.basesetting.producedivision.entity.MdmRole;
+import org.springblade.mdm.basesetting.producedivision.mapper.MdmRoleMapper;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class MdmRoleService extends ServiceImpl<MdmRoleMapper, MdmRole> {
+
+ /**
+ * 鏍规嵁鍒悕鍒楄〃鏌ヨ瑙掕壊鍒楄〃
+ * @param roleAliasList 鍒悕鍒楄〃
+ * @return 鍒悕瀵瑰簲鐨勮鑹插垪琛�
+ */
+ public List<MdmRole> listRoleAlias(List<String> roleAliasList) {
+
+ LambdaQueryChainWrapper<MdmRole> query = this.lambdaQuery();
+ query.eq(MdmRole::getIsDeleted,0).eq(MdmRole::getStatus,1);
+ query.in(MdmRole::getRoleAlias,roleAliasList);
+ /*for(String roleAlias : roleAliasList) {
+ query.like(MdmRole::getRoleAlias, roleAlias);
+ }*/
+
+ return query.list();
+ }
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmUserService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmUserService.java
index 3ec3f9a..067bec7 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmUserService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmUserService.java
@@ -1,15 +1,25 @@
package org.springblade.mdm.basesetting.producedivision.service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.basesetting.producedivision.entity.MdmRole;
import org.springblade.mdm.basesetting.producedivision.entity.MdmUser;
import org.springblade.mdm.basesetting.producedivision.mapper.MdmUserMapper;
+import org.springblade.mdm.commons.service.ParamService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
+import java.util.function.Consumer;
@Service
public class MdmUserService extends ServiceImpl<MdmUserMapper, MdmUser> {
-
+ @Autowired
+ private ParamService paramService;
+ @Autowired
+ private MdmRoleService roleService;
public Long getUserIdByName(String name) {
List<MdmUser> users = this.lambdaQuery().eq(MdmUser::getName, name).eq(MdmUser::getStatus, 1).orderByDesc(MdmUser::getCreateTime).list();
Long userId = null;
@@ -19,4 +29,30 @@
return userId;
}
+
+ public List<MdmUser> listByDeptAndRoleAlias() {
+ List<String> approveRoleAliasList = Func.split(paramService.getApproveRoleAlias(),',');
+ List<MdmUser> approveUserList = userListByRoleAlias(approveRoleAliasList);
+
+ //鏌ヨ绋嬪簭绠$悊鍛樼敤鎴峰垪琛�
+ List<String> managerAliasList = Func.split(paramService.getProgramManagerRoleAlias(),',');
+ List<MdmUser> mgrUserList = userListByRoleAlias(managerAliasList);
+
+ for(MdmUser approveUser : approveUserList) {
+ for(MdmUser manager : mgrUserList) {
+ if(approveUser.getId().equals(manager.getId())) {
+ approveUser.setManager(true);
+ break;
+ }
+ }
+ }
+ return approveUserList;
+ }
+
+ private List<MdmUser> userListByRoleAlias(List<String> approveRoleAliasList) {
+ List<MdmRole> approveRoles = roleService.listRoleAlias(approveRoleAliasList);
+ List<MdmUser> userList= this.getBaseMapper().selectByRoleIds(approveRoles.stream().map(MdmRole::getId).map(rid -> rid+"").toList());
+ return userList;
+
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/ParamService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/ParamService.java
index bcdb22d..69c4d9a 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/ParamService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/ParamService.java
@@ -26,6 +26,15 @@
@AllArgsConstructor
public class ParamService{
public static String NETWORK_TYPE= "networkType";
+
+ /**
+ * 瀹℃壒鐢ㄦ埛瑙掕壊鍒悕鍙傛暟key锛岄�楀彿鍒嗛殧
+ */
+ public static String APPROVE_ROLE_ALAS= "approveRoleAlas";
+ /**
+ * 鏁版帶绋嬪簭绠$悊鍛樿鑹插埆鍚嶅弬鏁発ey
+ */
+ public static String PROGRAM_MANAGER_ROLE_ALAS= "programManagerRoleAlas";
/**
* 榛樿娑夊瘑缃�
*/
@@ -40,4 +49,20 @@
return defaultValue;
}
+ /**
+ * 鑾峰彇瀹℃壒鐢ㄦ埛瑙掕壊鍙傛暟
+ * @return 瀹℃壒鐢ㄦ埛瑙掕壊鍙傛暟
+ */
+ public String getApproveRoleAlias(){
+ return getParamValue(APPROVE_ROLE_ALAS,"-1");
+ }
+
+ /**
+ * 鑾峰彇鏁版帶绋嬪簭绠$悊鍛樿鑹插埆鍚嶅弬鏁伴厤缃�
+ * @return 鏁版帶绋嬪簭绠$悊鍛樿鑹插埆鍚�
+ */
+ public String getProgramManagerRoleAlias(){
+ return getParamValue(PROGRAM_MANAGER_ROLE_ALAS,"-1");
+ }
+
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowFileController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowFileController.java
index afca5c4..fc532c3 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowFileController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowFileController.java
@@ -40,7 +40,7 @@
private final FlowProgramFileService flowProgramFileService;
@GetMapping("/compare-with-try")
- @Operation(summary = "瀵规瘮褰撳墠鏂囦欢涓庝箣鍓嶈瘯鍒囩増鏈殑鍐呭", description = "鏌ヨ瀵规瘮鍐呭鐨�2涓枃鏈暟鎹�")
+ @Operation(summary = "瀵规瘮褰撳墠鏂囦欢涓庝箣鍓嶈瘯鍒囩増鏈殑鍐呭", description = "鏌ヨ瀵规瘮鐨�2涓枃鏈唴瀹�")
public R<CompareDataVO> compareWithTry(@Parameter(description="鏂囦欢id)")Long fileId) {
CompareDataVO vo = new CompareDataVO();
FlowProgramFile flowFile = flowProgramFileService.getById(fileId);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
index d1c55b5..5c85937 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
@@ -12,6 +12,8 @@
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
+import org.springblade.mdm.basesetting.producedivision.entity.MdmUser;
+import org.springblade.mdm.basesetting.producedivision.service.MdmUserService;
import org.springblade.mdm.flow.service.FlowBusinessService;
import org.springblade.mdm.flow.service.FlowCommonService;
import org.springblade.mdm.flow.service.FlowTransferService;
@@ -34,7 +36,7 @@
@Autowired
private TaskService taskService;
@Autowired
- private HistoryService historyService;
+ private MdmUserService mdmUserService;
@Autowired
private FlowBusinessService businessService;
@Autowired
@@ -96,10 +98,9 @@
@GetMapping("flow-user-list")
@ApiOperationSupport(order = 3)
@Operation(summary = "鐢ㄦ埛涓嬫媺鏁版嵁", description = "鐢ㄦ埛涓嬫媺鏁版嵁")
- public R<List<User>> flowUserList(@Parameter(description = "閮ㄩ棬ID") String deptId,String taskId) {
- //userSearchClient.listByRole()
- return userSearchClient.listByDept(deptId);
+ public R<List<MdmUser>> flowUserList(@Parameter(description = "閮ㄩ棬ID") String deptId, String taskId) {
+ return R.data(mdmUserService.listByDeptAndRoleAlias());
}
/**
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
index b183be4..ae57c4f 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -50,6 +50,9 @@
*/
@Transactional
public String start(TaskAssignVO startVO){
+ if(!FlowContants.Y.equals(startVO.getIsTempFlow())){
+ startVO.setIsTempFlow(FlowContants.N);
+ }
Map<String, Object> vars = new HashMap<>();
ProduceDivision div = flowCommonService.putDefaultAssignees(vars,startVO.getDrawingNo(),null);
@@ -83,7 +86,7 @@
vars.put(FlowContants.IS_TEMP_FLOW,FlowContants.Y.equals(startVO.getIsTempFlow())?FlowContants.Y:FlowContants.N);
NcNode curedProgramPackage = null;
- if(FlowContants.N.equals(startVO.getIsTempFlow())) {
+ if(!FlowContants.Y.equals(startVO.getIsTempFlow())) {
curedProgramPackage = ncNodeService.getCuredProgramPackage(programPkgName, startVO.getMachineCode());
//璁剧疆鏄惁鏈夊浐鍖栫▼搴忔爣璁�
vars.put(FlowContants.HAS_CURED_PROGRAM, curedProgramPackage != null ? FlowContants.Y : FlowContants.N);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
index 9f14712..2dbcd42 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
@@ -46,17 +46,19 @@
String programPkgName = NcNodeService.genProgramName(props.getDrawingNo(),props.getProcessNo());
createProgramNodes(props);
+
+ String processEdition = props.getProcessEdition();
//TODO 鍋忕鍗曪紝鍜屽凡缁忓浐鍖栫殑绋嬪簭锛屾病鏈夊鐞�,:宸茬粡澶勭悊娌℃湁楠岃瘉
NcNode packageNode;
if(FlowContants.Y.equals(props.getHasCuredProgram()) && FlowContants.Y.equals(props.getCureProgramUseable())){
//鏈夊浐鍖栵紝涓旂▼搴忓彲鐢紝浠庡浐鍖栨爲鏌ヨ鑺傜偣
- packageNode = ncNodeService.getLastEditionCuredProgramPackage(programPkgName);
+ packageNode = ncNodeService.getLastEditionCuredProgramPackage(programPkgName,props.getProcessEdition());
}else if(Func.isNotBlank(props.getDeviation())){
//鏈夊亸绂诲崟
- packageNode = ncNodeService.getLastEditionDeviationProgramPackage(programPkgName);
+ packageNode = ncNodeService.getLastEditionDeviationProgramPackage(programPkgName,props.getProcessEdition());
}else{
//鏅�氳瘯鍒囷紝鎴栬�呮湁鍥哄寲涓嶅彲鐢�
- packageNode = ncNodeService.getLastEditionTryingProgramPackage(programPkgName);
+ packageNode = ncNodeService.getLastEditionTryingProgramPackage(programPkgName,props.getProcessEdition());
}
addApproveTable(packageNode,props);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/mapper/MachineFileMapper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/mapper/MachineFileMapper.java
index 002f6fd..5c71a76 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/mapper/MachineFileMapper.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/mapper/MachineFileMapper.java
@@ -16,10 +16,17 @@
/**
* 鏈哄簥鍥炰紶鏂囦欢鏌ヨ
- * @param query
+ * @param page 鍒嗛〉鍙傛暟
+ * @param queryVO 鏌ヨ瀵硅薄
* @return
*/
IPage<MachineBackFileVO> machineBackFilePageQuery(IPage<MachineBackFileVO> page, @Param("query")MachineBackFileQueryVO queryVO);
+ /**
+ * 鏈哄簥鍥炰紶鏂囦欢澶勭悊鍒嗛〉鏌ヨ
+ * @param page
+ * @param query
+ * @return
+ */
IPage<MachineBackFileVO> handlePageQuery(@Param("page")IPage<MachineBackFileVO> page,@Param("query") MachineBackFileHandleQueryVO query);
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/mapper/MachineFileMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/mapper/MachineFileMapper.xml
index 2a8fe72..bada9ec 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/mapper/MachineFileMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/mapper/MachineFileMapper.xml
@@ -14,7 +14,7 @@
select f.id,f.name,f.machine_code,f.file_create_time arrived_time,f.md5,f.file_size
from mdm_machine_file f join mdm_machine m on f.machine_code=m.code and m.is_deleted=0
<where>
- f.dir_type='REC' and f.status=1 and f.is_deleted=0
+ f.dir_type='TEMP' and f.status=1 and f.is_deleted=0
<if test="query.machineSpec!=null and query.machineSpec!=''">
and m.machine_spec=#{query.machineSpec,jdbcType=VARCHAR}
@@ -31,7 +31,7 @@
select f.id,f.name,f.machine_code,f.file_create_time arrived_time,f.md5,f.file_size,f.determine_time
from mdm_machine_file f join mdm_machine m on f.machine_code=m.code and m.is_deleted=0
<where>
- f.dir_type='REC' and f.status=2 and f.is_deleted=0
+ f.dir_type='TEMP' and f.status=2 and f.is_deleted=0
<if test="query.confirmTimeBegin!=null">
and f.determine_time>=#{query.confirmTimeBegin}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/vo/ProgramNameVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/vo/ProgramNameVO.java
index ebe888b..1015e6a 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/vo/ProgramNameVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/vo/ProgramNameVO.java
@@ -30,6 +30,6 @@
private int segmentNo;
public String logicProgramName(){
- return this.drawingNo+"-"+this.processNo;
+ return this.drawingNo+"-"+this.processNo+"-"+processEdition;
}
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileHandleController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileHandleController.java
index 4007c82..c6f6989 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileHandleController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileHandleController.java
@@ -10,10 +10,12 @@
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.UrlUtil;
import org.springblade.mdm.basesetting.machine.vo.MachineExcelVO;
import org.springblade.mdm.basesetting.machine.vo.MachineQueryVO;
import org.springblade.mdm.basesetting.machine.vo.MachineVO;
@@ -62,7 +64,10 @@
throw new ServiceException("鏈�夋嫨鏂囦欢瀵煎嚭");
}
try {
- String filename = "toinnerexp-"+ DateUtil.format(DateUtil.now(), "yyyyMMddHHmm")+".zip";
+ String prefix = UrlUtil.encode(AuthUtil.getNickName()+"-宸ユ帶缃戝鍑�");
+ //String filename =AuthUtil.getNickName()+"-"+ DateUtil.format(DateUtil.now(), "yyyyMMddHHmm")+".zip";
+ String filename = prefix+"-"+ DateUtil.format(DateUtil.now(), "yyyyMMddHHmm")+".zip";
+
response.setHeader("Content-Disposition", "attachment; filename="+filename);
response.setContentType("application/octet-stream");
ncProgramExportInnerService.exportToInner(Func.toLongList(ids),response.getOutputStream());
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/service/NcProgramExportInnerService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/service/NcProgramExportInnerService.java
index a3d3d32..91036cd 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/service/NcProgramExportInnerService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/service/NcProgramExportInnerService.java
@@ -72,8 +72,8 @@
//FileOutputStream fos = new FileOutputStream("d:/exportDnc.zip");
try (ZipOutputStream zipOut = new ZipOutputStream(os);) {//os
- List<MachineFile> macineFiles = machineFileService.lambdaQuery().in(MachineFile::getId,machineFileIds).list();
- Map<String,List<MachineFile>> map = macineFiles.stream()
+ List<MachineFile> machineFiles = machineFileService.lambdaQuery().in(MachineFile::getId,machineFileIds).list();
+ Map<String,List<MachineFile>> map = machineFiles.stream()
.collect(Collectors.groupingBy(s -> ProgramFileNameParser.parseProgramName(s.getName()).logicProgramName()));
for (Map.Entry<String, List<MachineFile>> entry : map.entrySet()) {
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 befdbe1..72b56cd 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
@@ -1,13 +1,11 @@
package org.springblade.mdm.program.service;
-import com.alibaba.fastjson.JSONObject;
-import io.netty.util.internal.StringUtil;
import lombok.AllArgsConstructor;
+import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.log.exception.ServiceException;
-import org.springblade.core.mp.base.BizEntity;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.oss.OssTemplate;
import org.springblade.core.oss.model.BladeFile;
@@ -26,9 +24,7 @@
import org.springblade.mdm.program.mapper.NcProgramExchangeMapper;
import org.springblade.mdm.program.vo.DncSendBackData;
import org.springblade.mdm.program.vo.DncSendBackFile;
-import org.springblade.mdm.utils.EntityUtil;
import org.springblade.mdm.utils.FileContentUtil;
-import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -104,7 +100,7 @@
Path tempZipFile = createTempFile(inputStream);
List<String> fileEntryNameList = new ArrayList<>();
- List<String> dirEntryNameList = new ArrayList<>();
+ List<String> dirEntryNameList = new ArrayList<>();//绋嬪簭鍖呭悕+宸ュ簭鐗堟 浣滀负鏂囦欢澶瑰悕
try (ZipFile zipFile = new ZipFile(tempZipFile.toFile())) {
Enumeration<? extends ZipEntry> zipEntries = zipFile.entries();
@@ -124,10 +120,18 @@
//鐩綍鍒楄〃锛屽嵆绋嬪簭鍖呭垪琛�
for(String entryName : dirEntryNameList){
DncSendBackData progData = new DncSendBackData();
- String packageName = StringUtils.removeEnd(entryName,"/");
+ String folderName = StringUtils.removeEnd(entryName,"/");
+
+ PackageAndProcessEdition pkgAndEdition = parseProgramPackageFromFolderName(folderName);
+ String packageName = pkgAndEdition.getProgramPackageName();
+ String processEdition = pkgAndEdition.getProcessEdition();
+ if(StringUtils.isBlank(packageName) || StringUtils.isBlank(processEdition)){
+ throw new ServiceException("鍖呭唴鏂囦欢澶瑰悕鏍煎紡閿欒搴旇涓篬闆剁粍浠跺彿-宸ュ簭鍙�-宸ュ簭鐗堟]:"+folderName);
+ }
+
progData.setProgramName(packageName);
String statusLine = "";
- Optional<String> optFilename = fileEntryNameList.stream().filter(n -> n.startsWith(packageName)).findFirst();
+ Optional<String> optFilename = fileEntryNameList.stream().filter(n -> n.startsWith(entryName)).findFirst();
if(optFilename.isPresent()){
entry = zipFile.getEntry(optFilename.get());
InputStream ins = zipFile.getInputStream(entry);
@@ -135,13 +139,13 @@
statusLine = FileContentUtil.readLineAt(ins,2);
if(statusLine.contains("SQ")){
//璇曞垏
- programPackageNode = ncNodeService.getLastEditionTryingProgramPackage(packageName);
+ programPackageNode = ncNodeService.getLastEditionTryingProgramPackage(packageName,processEdition);
}else if(statusLine.contains("GH")){
//鍥哄寲
- programPackageNode = ncNodeService.getLastEditionCuredProgramPackage(packageName);
+ programPackageNode = ncNodeService.getLastEditionCuredProgramPackage(packageName,processEdition);
}else if(statusLine.contains("PL")){
//鍋忕
- programPackageNode =ncNodeService.getLastEditionDeviationProgramPackage(packageName);
+ programPackageNode =ncNodeService.getLastEditionDeviationProgramPackage(packageName,processEdition);
}else{
throw new ServiceException("鏈壘鍒扮▼搴忔枃浠朵腑鐨勭姸鎬佹敞閲�");
}
@@ -173,6 +177,26 @@
return list;
}
+ /**
+ * 浠庢枃浠跺す鍚嶈В鏋愬嚭绋嬪簭鍖呭悕鍜屽拰宸ュ簭鐗堟
+ * @param folderName 鏂囦欢澶瑰悕
+ * @return 缁撴瀯鏁版嵁
+ */
+ PackageAndProcessEdition parseProgramPackageFromFolderName(String folderName){
+ int index = StringUtils.lastIndexOf(folderName,'-');
+ String processEditon = "";
+ String temp;
+ String packageName = "";
+ if(index != -1){
+ processEditon = folderName.substring(index+1);
+ packageName = folderName.substring(0,index);
+ }
+
+ PackageAndProcessEdition result = new PackageAndProcessEdition();;
+ result.setProgramPackageName(packageName);
+ result.setProcessEdition(processEditon);
+ return result;
+ }
/**
* 鍏ュ簱鍥炰紶鏂囦欢,骞跺惎鍔ㄥ浐鍖栨祦绋�
@@ -464,3 +488,10 @@
}
}
+
+@Data
+class PackageAndProcessEdition{
+ private String programPackageName;
+ private String processEdition;
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
index 21fc1f7..fbfc9d6 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
@@ -189,13 +189,13 @@
* @param name 鑺傜偣鍚嶇О
* @return 鏈�鏂扮増鏈▼搴忔姤鍚嶈妭鐐�
*/
- public NcNode getLastEditionTryingProgramPackage(String name){
+ public NcNode getLastEditionTryingProgramPackage(String name,String processEdition){
//.or(NcNode::getIsCured,0)
List<NcNode> pkgList = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
.eq(NcNode::getName, name).and(i->{
i.eq(NcNode::getIsCured, 0).or().isNull(NcNode::getIsCured);
}).likeRight(NcNode::getParentIds,"0,1,")
- .eq(NcNode::getIsLastEdition,1).orderByDesc(NcNode::getCreateTime).list();
+ .eq(NcNode::getIsLastEdition,1).eq(NcNode::getProcessEdition,processEdition).orderByDesc(NcNode::getCreateTime).list();
if(pkgList.isEmpty()){
return null;
@@ -245,9 +245,10 @@
* @param programPkgName
* @return
*/
- public NcNode getLastEditionCuredProgramPackage(String programPkgName) {
+ public NcNode getLastEditionCuredProgramPackage(String programPkgName,String processEdition) {
List<NcNode> nodes = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
.eq(NcNode::getName, programPkgName).likeRight(NcNode::getParentIds,"0,2,").eq(NcNode::getIsCured,1)
+ .eq(NcNode::getProcessEdition, processEdition)
.eq(NcNode::getIsLastEdition,1).list();
if(nodes.isEmpty()){
@@ -284,9 +285,11 @@
* @param programPkgName 绋嬪簭鍖呭悕
* @return 鍋忕鐨勭▼搴忚妭鐐�
*/
- public NcNode getLastEditionDeviationProgramPackage(String programPkgName) {
+ public NcNode getLastEditionDeviationProgramPackage(String programPkgName,String processEdition) {
List<NcNode> nodes = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
- .eq(NcNode::getName, programPkgName).likeRight(NcNode::getParentIds,"0,3,")
+ .eq(NcNode::getName, programPkgName)
+ .eq(NcNode::getProcessEdition, processEdition)
+ .likeRight(NcNode::getParentIds,"0,3,")
.eq(NcNode::getIsLastEdition,1).list();
if(nodes.isEmpty()){
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
index 9fe865e..01a348b 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
@@ -2,14 +2,10 @@
package org.springblade.mdm.program.service;
import com.alibaba.csp.sentinel.util.StringUtil;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.jetbrains.annotations.NotNull;
import org.springblade.core.log.exception.ServiceException;
-import org.springblade.core.mp.base.BizEntity;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
@@ -18,7 +14,6 @@
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.machine.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
-import org.springblade.mdm.flow.entity.ApproveRecord;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.service.ApproveRecordService;
import org.springblade.mdm.flow.service.FlowProgramFileService;
@@ -27,13 +22,10 @@
import org.springblade.mdm.program.entity.NcProgramExchange;
import org.springblade.mdm.program.mapper.NcProgramExchangeMapper;
import org.springblade.mdm.program.vo.DncSendBackData;
-import org.springblade.mdm.utils.FileContentUtil;
import org.springblade.system.feign.IDictClient;
-import org.springblade.system.pojo.entity.Dict;
import org.springframework.stereotype.Service;
import java.io.*;
-import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@@ -52,14 +44,10 @@
private final IDictClient dictClient;
private final MachineService machineService;
private final NcProgramApprovedService approvedService;
- private final ApproveRecordService approveRecordService;
private final NcNodeService ncNodeService;
private final OssTemplate ossTemplate;
private final FlowProgramFileService flowProgramFileService;
private final ProgramAnnotationService programAnnotationService;
- //public static final String PROGRAM_JSON_FILE = "exp_mdm_nc_program.json";
- //public static final String NODE_JSON_FILE = "exp_mdm_nc_node.json";
- //public static final String APPROVE_RECORD_JSON_FILE = "exp_mdm_approve_record.json";
public static final String ANNOTATION_DICT = "machine_annotation";
@@ -100,12 +88,14 @@
* @param approved
*/
private void addProgramPackageToZip(ZipOutputStream zipOut, NcProgramApproved approved) throws IOException{
- String packageFolder = approved.getProgramName()+"/";
+ NcNode packageNode = ncNodeService.getById(approved.getNcNodeId());
+
+ String packageFolder = packageNode.getName()+"-"+packageNode.getProcessEdition()+"/";
ZipEntry zipEntry = new ZipEntry(packageFolder);// "/"缁撳熬琛ㄧず鏂囦欢澶�
zipOut.putNextEntry(zipEntry);
zipOut.closeEntry();
- NcNode packageNode = ncNodeService.getById(approved.getNcNodeId());
+
Machine machine = machineService.getByCode(packageNode.getMachineCode());//绋嬪簭鍖呰妭鐐癸紝鑾峰彇娉ㄩ噴鐢�
List<NcNode> programNodes = ncNodeService.lambdaQuery().eq(NcNode::getIsLastEdition,1).eq(NcNode::getParentId, approved.getNcNodeId()).list();
@@ -124,8 +114,6 @@
programFile = this.flowProgramFileService.getById(node.getFlowProgramFileId());
if(programFile.isProgram()) {//绋嬪簭鏂囦欢锛屾墠浼氬姞鍏ュ帇缂╁寘
InputStream inputStream = ossTemplate.statFileStream(programFile.getOssName());
- //InputStream addedIns1 = addSendDirAnnotation(inputStream, machine, annotationList);
- //InputStream addedIns2 = addProgramStatusAnnotation(addedIns1, status, machine, annotationList);
String sendDir = machine.getProgSendDir()==null? StringUtil.EMPTY:machine.getProgSendDir();
InputStream addedIns2 = programAnnotationService.setSendDirAndStatusAnnotation(sendDir,status,inputStream,machine.getMachineGroupCode());
this.addInputStreamToZip(zipOut, addedIns2, filePathInZip);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java
index 909d7a8..572b22c 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java
@@ -165,7 +165,7 @@
if(existFileInDb == null) {
machineFileService.save(mf);
}else{
- log.info("鏂囦欢宸插鏋滄帬杩�:{}",filePath.getFileName());
+ log.info("鏂囦欢宸插瓨鍦ㄦ帬杩�:{}",filePath.getFileName());
//宸插瓨鍦ㄥ拫鏁淬��
existFileInDb.setFileSize(mf.getFileSize());
diff --git a/blade-service/blade-mdm/src/main/resources/logback.xml b/blade-service/blade-mdm/src/main/resources/logback.xml
index db5e1d3..9d5749c 100644
--- a/blade-service/blade-mdm/src/main/resources/logback.xml
+++ b/blade-service/blade-mdm/src/main/resources/logback.xml
@@ -56,4 +56,11 @@
<appender-ref ref="MDM_FILE" />
<appender-ref ref="CONSOLE" />
</logger>
+ <!-- 閰嶇疆 MyBatis Mapper 鍖呮棩蹇� -->
+ <logger name="com.yourcompany.yourproject.mapper" level="DEBUG" additivity="false">
+ <appender-ref ref="FILE"/> <!-- MyBatis 鏃ュ織杈撳嚭鍒版枃浠� -->
+ <appender-ref ref="MDM_FILE"/>
+ <!-- 濡傛灉涔熷笇鏈涘湪鎺у埗鍙扮湅鍒帮紝鍙互鍔犱笂 <appender-ref ref="CONSOLE"/> -->
+ <appender-ref ref="CONSOLE" />
+ </logger>
</configuration>
--
Gitblit v1.9.3