From 5db0642d9f3a75e21be27529cee060fa3bb91f48 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 30 六月 2025 23:25:43 +0800
Subject: [PATCH] 流程与程序关联表插入数据
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncPageVO.java | 17 ++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml | 29 +++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramMapper.xml | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramApprovedService.java | 41 ++++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.java | 13 +++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProcessProgRefService.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncQueryVO.java | 24 ++++++
blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml | 6 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java | 22 +++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java | 48 ++++++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramExportDNCController.java | 17 ++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/ProcessProgRef.java | 2
12 files changed, 218 insertions(+), 5 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java
new file mode 100644
index 0000000..0942561
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java
@@ -0,0 +1,48 @@
+package org.springblade.mdm.flow.excution;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.flowable.engine.RuntimeService;
+import org.flowable.engine.delegate.DelegateExecution;
+import org.flowable.engine.history.HistoricProcessInstance;
+import org.springblade.mdm.program.entity.NcProgramApproved;
+import org.springblade.mdm.program.entity.ProcessProgRef;
+import org.springblade.mdm.program.service.NcProgramApprovedService;
+import org.springblade.mdm.program.service.ProcessProgRefService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 娲惧伐瀹℃壒瀹屾垚鎵ц鐨勪簨浠讹紝鍔熻兘锛氭彃鍏ュ鎵硅〃鏁版嵁
+ */
+@Slf4j
+@Component("dispatchFinishListener")
+public class DispatchFinishListener {
+ @Autowired
+ RuntimeService runtimeService;
+ @Autowired
+ ProcessProgRefService processProgRefService;
+ @Autowired
+ NcProgramApprovedService approvedService;
+ public void handle(DelegateExecution execution) {
+ String instId = execution.getProcessInstanceId();
+ log.info("{}锛宨nstid={}" , runtimeService,instId);
+ //灏嗗叧鑱旇〃涓殑鏁版嵁鎻掑叆瀹℃壒琛�
+ LambdaQueryWrapper<ProcessProgRef> wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(ProcessProgRef::getProcessInstanceId, instId);
+ List<ProcessProgRef> reflist = processProgRefService.list(wrapper);
+ for (ProcessProgRef ref : reflist) {
+ NcProgramApproved approved = new NcProgramApproved();
+ approved.setNcProgramId(ref.getNcProgramId());
+
+ approvedService.save(approved);
+ }
+
+ // 鎵ц涓氬姟閫昏緫
+ System.out.println("娴佺▼宸插畬鎴�");
+ }
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramExportDNCController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramExportDNCController.java
index f16180d..db7406c 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramExportDNCController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramExportDNCController.java
@@ -1,13 +1,21 @@
package org.springblade.mdm.program.controller;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.mdm.program.service.NcProgramApprovedService;
import org.springblade.mdm.program.service.NcProgramService;
+import org.springblade.mdm.program.vo.NcNodeProgramQueryVO;
+import org.springblade.mdm.program.vo.NcProgramExportDncPageVO;
+import org.springblade.mdm.program.vo.NcProgramExportDncQueryVO;
+import org.springblade.mdm.program.vo.NcProgramVO;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -21,11 +29,18 @@
@RestController
@RequestMapping("/program/exchange")
@AllArgsConstructor
-@Tag(name = "瀵煎嚭DNC", description = "娑夊瘑缃戞矇鐥煎鍑篋NC")
+@Tag(name = "瀵煎嚭DNC", description = "娑夊瘑缃戠▼搴忓鍑篋NC")
@Slf4j
public class NcProgramExportDNCController {
private final NcProgramService ncProgramService;
+ private final NcProgramApprovedService ncProgramApprovedService;
+ @Operation(summary = "绋嬪簭瀵煎嚭DNC鍒嗛〉鏌ヨ", description = "鍒嗛〉鏌ヨ锛屼緵鐢ㄦ埛閫夋嫨鏁版嵁")
+ @GetMapping("/export-dnc-page")
+ public R<IPage<NcProgramExportDncPageVO>> page(NcProgramExportDncQueryVO query) {
+ //IPage<NcProgramVO> pages = ncProgramService.pageQuery(query);
+ return R.data(ncProgramApprovedService.exportDncPageQuery(query));
+ }
@PostMapping("/export-dnc")
@Operation(summary = "鏁版帶绋嬪簭瀵煎嚭dnc", description = "鏁版帶绋嬪簭瀵煎嚭鍒板伐鎺х綉")
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java
new file mode 100644
index 0000000..4f4a042
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java
@@ -0,0 +1,22 @@
+package org.springblade.mdm.program.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.core.mp.base.BizEntity;
+
+import java.time.LocalDateTime;
+
+/**
+ * 鏁版帶绋嬪簭瀹℃壒琛�
+ */
+@Setter
+@Getter
+@TableName("mdm_nc_program_approved")
+public class NcProgramApproved extends BizEntity {
+ /*
+ * 鎵�灞炶妭鐐筰d锛屽繀椤绘湭鈥滅▼搴忓寘鍚�"鐨勮妭鐐�
+ */
+ private long ncProgramId;
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/ProcessProgRef.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/ProcessProgRef.java
index 6423fd8..db55b9c 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/ProcessProgRef.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/ProcessProgRef.java
@@ -18,6 +18,6 @@
/**
* 瀵硅薄瀛樺偍涓殑鍚嶇О
*/
- private Long programId;
+ private Long ncProgramId;
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.java
new file mode 100644
index 0000000..7cecba4
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.java
@@ -0,0 +1,13 @@
+package org.springblade.mdm.program.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.core.mp.mapper.BladeMapper;
+import org.springblade.mdm.program.entity.NcProgramApproved;
+import org.springblade.mdm.program.vo.*;
+
+public interface NcProgramApprovedMapper extends BladeMapper<NcProgramApproved> {
+
+
+ IPage<NcProgramExportDncPageVO> exportDncPageQuery(@Param("page")IPage<NcProgramExportDncPageVO> page, @Param("query") NcProgramExportDncQueryVO query);
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml
new file mode 100644
index 0000000..18d4c99
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml
@@ -0,0 +1,29 @@
+<?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.program.mapper.NcProgramApprovedMapper">
+ <resultMap id="BaseResultMap" type="org.springblade.mdm.program.entity.NcProgramApproved">
+ <id column="id" property="id"/>
+
+
+ <result column="status" property="status"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ <result column="is_deleted" property="isDeleted"/>
+ </resultMap>
+ <select id="exportDncPageQuery" resultType="org.springblade.mdm.program.vo.NcProgramExportDncPageVO">
+ select a.id,a.nc_program_id,p.name,p.nc_node_id,a.create_time,p.process_name from mdm_nc_program_approved a inner join mdm_nc_program p on a.nc_program_id=p.id
+ where a.is_deleted=0
+ <where>
+ <if test="query.name!=null and query.name!=''">
+ and p.name like CONCAT('%', #{query.name,jdbcType=VARCHAR},'%')
+ </if>
+
+ <if test="query.passTimeBegin!=null">
+ and a.create_time >= #{query.passTimeBegin}
+ </if>
+ <if test="query.passTimeEnd!=null">
+ and a.create_time <= #{query.passTimeEnd}
+ </if>
+ </where>
+ </select>
+</mapper>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramMapper.xml
index 59b51b3..c99c185 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramMapper.xml
@@ -44,7 +44,7 @@
</select>
<select id="pageQuery" resultType="org.springblade.mdm.program.vo.NcProgramVO">
- select id,nc_node_id,machine_code,part_no,part_no_edition,process_name,craft_edition from mdm_nc_program p
+ select id,nc_node_id,name,machine_code,part_no,part_no_edition,process_name,craft_edition from mdm_nc_program p
where is_deleted=0 and is_last_edition=1 and (category='program' or category='subprogram')
<where>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramApprovedService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramApprovedService.java
new file mode 100644
index 0000000..4a12b5e
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramApprovedService.java
@@ -0,0 +1,41 @@
+
+package org.springblade.mdm.program.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.mp.base.BizServiceImpl;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.mdm.program.entity.NcProgramApproved;
+import org.springblade.mdm.program.mapper.NcProgramApprovedMapper;
+import org.springblade.mdm.program.vo.DncSendBackData;
+import org.springblade.mdm.program.vo.NcProgramExportDncPageVO;
+import org.springblade.mdm.program.vo.NcProgramExportDncQueryVO;
+import org.springframework.stereotype.Service;
+
+/**
+ * 涓嬪彂/鍥炰紶绋嬪簭缁熻
+ *
+ * @author yangys
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class NcProgramApprovedService extends BizServiceImpl<NcProgramApprovedMapper, NcProgramApproved> {
+
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query 鏌ヨ鍙傛暟
+ * @return
+ */
+ public IPage<NcProgramExportDncPageVO> exportDncPageQuery(NcProgramExportDncQueryVO query) {
+
+ IPage<NcProgramExportDncPageVO> page = this.getBaseMapper().exportDncPageQuery(Condition.getPage(query),query);
+
+ return page;
+
+ }
+}
+
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProcessProgRefService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProcessProgRefService.java
index 8b29d29..1b5ac3b 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProcessProgRefService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProcessProgRefService.java
@@ -86,7 +86,7 @@
for (Long programId : programIds) {
ProcessProgRef entity = new ProcessProgRef();
entity.setProcessInstanceId(processInstanceId);
- entity.setProgramId(programId);
+ entity.setNcProgramId(programId);
entities.add(entity);
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncPageVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncPageVO.java
new file mode 100644
index 0000000..1b2b28d
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncPageVO.java
@@ -0,0 +1,17 @@
+package org.springblade.mdm.program.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.mdm.commons.vo.BaseVO;
+
+/**
+ * NC绋嬪簭VO
+ */
+@Setter
+@Getter
+public class NcProgramExportDncPageVO extends BaseVO {
+ @Schema(description = "绋嬪簭鍚嶇О")
+ private String name;
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncQueryVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncQueryVO.java
new file mode 100644
index 0000000..537793c
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncQueryVO.java
@@ -0,0 +1,24 @@
+package org.springblade.mdm.program.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.core.mp.support.Query;
+
+import java.util.Date;
+
+/**
+ * 鍒嗛〉鎷嗙嚎鍛�
+ */
+
+@Schema(description = "鏈哄簥鍥炰紶鏂囦欢鏌ヨ瀵硅薄")
+@Setter
+@Getter
+public class NcProgramExportDncQueryVO extends Query {
+ @Schema(description = "绋嬪簭鍚嶇О")
+ private String name;
+ @Schema(description = "閫氳繃鏃堕棿寮�濮�")
+ private Date passTimeBegin;
+ @Schema(description = "閫氳繃鏃堕棿鎴")
+ private Date passTimeEnd;
+}
diff --git a/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml b/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
index 01d3901..aaf3acd 100644
--- a/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
+++ b/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
@@ -7,7 +7,11 @@
<userTask id="programmingTask" name="缂栧埗" flowable:assignee="${assignee}"/>
<userTask id="check" name="鏍″" flowable:assignee="${assignee}"/>
<userTask id="approveTask" name="楂樺笀瀹℃壒" flowable:assignee="${assignee}"/>
- <endEvent id="approveEnd" name="瀹℃壒瀹屾垚"/>
+ <endEvent id="approveEnd" name="瀹℃壒瀹屾垚">
+ <extensionElements>
+ <flowable:executionListener expression="${dispatchFinishListener.handle(execution)}" event="end"/>
+ </extensionElements>
+ </endEvent>
<sequenceFlow id="programingToCheck" sourceRef="programmingTask" targetRef="check" name="缂栧埗瀹屾垚缁欐牎瀵�">
<conditionExpression xsi:type="tFormalExpression">${approve=='Y'}</conditionExpression>
</sequenceFlow>
--
Gitblit v1.9.3