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