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("{}ï¼instid={}" , 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("æµç¨å·²å®æ"); } } 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 = "æ¶å¯ç½æ²ç¼å¯¼åºDNC") @Tag(name = "导åºDNC", description = "æ¶å¯ç½ç¨åºå¯¼åºDNC") @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 = "æ°æ§ç¨åºå¯¼åºå°å·¥æ§ç½") 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 { /* * æå±èç¹idï¼å¿ é¡»æªâç¨åºå å"çèç¹ */ private long ncProgramId; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/ProcessProgRef.java
@@ -18,6 +18,6 @@ /** * 对象åå¨ä¸çåç§° */ private Long programId; private Long ncProgramId; } 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); } 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> 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> 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; } } 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); } 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; } 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; } 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>