blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/controller/ProduceDivisionController.java
@@ -6,11 +6,15 @@ import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.springblade.core.mp.support.Query; import org.springblade.core.oss.OssTemplate; import org.springblade.core.tool.api.IResultCode; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision; import org.springblade.mdm.basesetting.producedivision.entity.QinzheFgb; import org.springblade.mdm.basesetting.producedivision.service.ProduceDivisionService; import org.springblade.mdm.basesetting.producedivision.vo.ImportResult; import org.springblade.mdm.basesetting.producedivision.vo.ProduceDivisionVO; @@ -23,6 +27,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.Collections; import java.util.List; @Slf4j @@ -115,5 +120,41 @@ log.error("导åºå工表模æ¿å¼å¸¸", e); } } @Operation(summary = "ä»»å¡è®¡åæ¥è¯¢å工表id", description = "ä»»å¡è®¡ågæ ¹æ®é¶ç»ä»¶å·æ¥è¯¢è责表id") @GetMapping("/select-by-drawingno") public R<ProduceDivision> selectByDrawingNo(@RequestParam String drawingNo) { try { ProduceDivision div = service.getByDrawingNoWithQinzhe(drawingNo); return R.data(div); } catch (Exception e) { log.error("æ ¹æ®é¶ä»¶å·è·åè责表å¼å¸¸",e); return R.fail(new IResultCode() { @Override public String getMessage() { return e.getMessage(); } @Override public int getCode() { return 201; } }); } } @Operation(summary = "ä»»å¡è®¡åéæ©ä¸»ç®¡å·¥èº", description = "ä»»å¡è®¡åéæ©ä¸»ç®¡å·¥èº") @GetMapping("/select-programmer") public R<List<ProduceDivisionViewVO>> selectProgrammer(@RequestParam String programmer) { if(StringUtils.isBlank(programmer)){ return R.data(Collections.emptyList()); } try { String p = programmer.trim(); return R.data(service.queryProgrammer(programmer)); } catch (Exception e) { log.error("è·åé¶ä»¶å·å¼å¸¸",e); return R.fail(e.getMessage()); } } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.java
@@ -6,8 +6,17 @@ import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision; import org.springblade.mdm.basesetting.producedivision.vo.ProduceDivisionViewVO; import java.util.List; public interface ProduceDivisionMapper extends BladeMapper<ProduceDivision> { IPage<ProduceDivisionViewVO> pageQuery(@Param("page")IPage<ProduceDivision> page, @Param("name")String name); //pageMachine /** * æ ¹æ®å§åæ¥è¯¢ä¸»ç®¡å·¥èºå表 * @param programmer å·¥èºiå§å * @return */ List<ProduceDivisionViewVO> queryProgrammer(String programmer); //pageMachine } blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.xml
@@ -32,5 +32,18 @@ ) </if> </select> <select id="queryProgrammer" resultType="org.springblade.mdm.basesetting.producedivision.vo.ProduceDivisionViewVO"> select p.id,p.programmer_id,p.checker_id,p.senior_id,pro.name programmer_name,c.name checker_name from mdm_produce_division p left join blade_user pro on p.programmer_id=pro.id and pro.is_deleted=0 left join blade_user c on p.checker_id=c.id and c.is_deleted=0 <where> p.is_deleted=0 <bind name="pname" value="programmer+'%'"/> and pro.name like #{pname} </where> </select> </mapper> blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java
@@ -185,4 +185,13 @@ return division; } /** * éæ©ä¸»ç®¡å·¥èºæ°æ® * @param programmer * @return */ public List<ProduceDivisionViewVO> queryProgrammer(String programmer) { return baseMapper.queryProgrammer(programmer); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/UserCommonService.java
@@ -27,8 +27,8 @@ * è·åç¨æ·å§å * @return */ public String getUserNameById(Long programmerId){ R<User> programmerResult = userClient.userInfoById(programmerId); public String getUserNameById(Long userId){ R<User> programmerResult = userClient.userInfoById(userId); if(programmerResult.isSuccess()) { return programmerResult.getData().getName(); }else{ blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java
@@ -148,4 +148,8 @@ å·²åºåä½ä»¥å·²æå¸å½æ å¿ Y/N */ public static final String CURED_LOCKED = "curedLocked"; /** * ç¨åºç¼å· */ public static final String PROGRAM_NO = "programNo"; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
@@ -19,6 +19,7 @@ import org.springblade.mdm.flow.service.TaskDispatchService; import org.springblade.mdm.flow.service.execute.*; import org.springblade.mdm.flow.vo.BatchDispatchVO; import org.springblade.mdm.flow.vo.FlowStartResult; import org.springblade.mdm.flow.vo.TaskAssignVO; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -35,9 +36,7 @@ private final StartDispatcher dispatcher; private final TaskService taskService; private final RuntimeService runtimeService; private final FlowProgramFileService flowProgramFileService; private final TryFlowCompleteService tryFlowCompleteService; @@ -62,16 +61,16 @@ } try { String instId = dispatcher.start(startVO); FlowStartResult result = dispatcher.start(startVO); dispatch.setStatus(TaskDispatch.STATUS_STARTED); dispatch.setProcessInstanceId(instId); dispatch.setProcessInstanceId(result.getProcessInstanceId()); dispatch.setProgramNo(result.getProgramNo()); taskDispatchService.updateById(dispatch); return R.data(true); } catch (Exception e) { dispatch.setStatus(TaskDispatch.STATUS_EXCEPTION); dispatch.setErrMsg(e.getMessage()); taskDispatchService.updateById(dispatch); //return R.fail("ä»»å¡å¯å¨å¼å¸¸:"+e.getMessage()); return R.fail(new IResultCode() { @Override public String getMessage() { blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchTaskController.java
@@ -24,6 +24,7 @@ import org.springblade.mdm.flow.service.execute.*; import org.springblade.mdm.flow.vo.BatchDispatchVO; import org.springblade.mdm.flow.vo.DispathTaskQueryVO; import org.springblade.mdm.flow.vo.FlowStartResult; import org.springblade.mdm.flow.vo.TaskAssignVO; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; @@ -89,9 +90,10 @@ BeanUtils.copyProperties(dispatch, startVO); startVO.setTitle(startVO.getDrawingNo()+"-"+startVO.getProcessNo()+"-"+startVO.getProcessEdition()+"æ°æ§ç¨åºç¼å¶"); try { String instId = dispatcher.start(startVO); FlowStartResult result = dispatcher.start(startVO); dispatch.setStatus(TaskDispatch.STATUS_STARTED); dispatch.setProcessInstanceId(instId); dispatch.setProcessInstanceId(result.getProcessInstanceId()); dispatch.setProgramNo(result.getProgramNo()); taskDispatchService.updateById(dispatch); } catch (Exception e) { log.error("æµç¨å¯å¨å¼å¸¸",e); blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -7,14 +7,18 @@ import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision; import org.springblade.mdm.basesetting.producedivision.service.ProduceDivisionService; import org.springblade.mdm.commons.service.UserCommonService; import org.springblade.mdm.flow.constants.FlowContants; import org.springblade.mdm.flow.entity.FlowProgramFile; import org.springblade.mdm.flow.service.FlowCommonService; import org.springblade.mdm.flow.service.FlowProgramFileService; import org.springblade.mdm.flow.vo.FlowStartResult; import org.springblade.mdm.flow.vo.TaskAssignVO; import org.springblade.mdm.program.entity.NcNode; import org.springblade.mdm.program.service.NcNodeService; import org.springblade.mdm.program.service.NodeDeptQueryService; import org.springblade.mdm.program.service.ProgramSeqService; import org.springblade.mdm.utils.EntityUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -29,28 +33,41 @@ @Service("startDispatcher") public class StartDispatcher { private final RuntimeService runtimeService; private final ProgramSeqService programSeqService; private final IdentityService identityService; private final NcNodeService ncNodeService; private final FlowProgramFileService flowProgramFileService; private final NodeDeptQueryService nodeDeptQueryService; private final FlowCommonService flowCommonService; private final ProduceDivisionService produceDivisionService; private final UserCommonService userCommonService; /** * å¯å¨æ´¾å·¥æµç¨ * @param startVO è¡¨åæ°æ® * @return æµç¨å®ä¾id */ @Transactional public String start(TaskAssignVO startVO){ public FlowStartResult 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); ProduceDivision div; if(startVO.getProducePlanId() != null && startVO.getProducePlanId()!=0){ //çé¢ä¸éæ©äºåå·¥è¡¨çæ åµï¼ç´æ¥æ ¹æ®idè·å div = produceDivisionService.getById(startVO.getProducePlanId()); vars.put(FlowContants.TEAM_LEADER,div.getTeamLeaderId()); vars.put(FlowContants.PROGRAMMER,div.getProgrammerId()); vars.put(FlowContants.CHECKER,div.getCheckerId()); vars.put(FlowContants.SENIOR,div.getSeniorId()); vars.put(FlowContants.PROGRAMMER_NAME, userCommonService.getUserNameById(div.getProgrammerId())); }else { div = flowCommonService.putDefaultAssignees(vars, startVO.getDrawingNo(), null); } vars.put(FlowContants.TITLE,startVO.getTitle()); //æºåºç¼å· @@ -110,7 +127,7 @@ vars.put(FlowContants.MY_PROCESS_NAME, myProcessName); String businessKey = "0";//ä¸å¡è¡¨key String businessKey = Func.toStr(startVO.getTaskDispatchId());//ä¸å¡è¡¨key identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//设置æµç¨å起人 ProcessInstance inst; if(startVO.isTemporaryFlow()){ @@ -120,13 +137,20 @@ vars.put(FlowContants.ASSIGNEE,div.getTeamLeaderId());//第ä¸ä¸ªç¨æ·ç»é¿ inst = runtimeService.startProcessInstanceByKey(FlowContants.TRY_PROCESS_KEY,businessKey,vars); } FlowStartResult result = new FlowStartResult(); result.setProcessInstanceId(inst.getProcessInstanceId()); //çæç¨åºç¼å· String programNo = programSeqService.generageProgramNo(); runtimeService.setVariable(inst.getProcessInstanceId(),FlowContants.PROGRAM_NO,programNo); result.setProgramNo(programNo); if(curedProgramPackage != null) {//åå¨å·²åºåç¨åºï¼å¤å¶åæ¥çç¨åºæä»¶ã copyFlowProgramFiles(curedProgramPackage.getId(),inst.getProcessInstanceId()); curedProgramPackage.setProcessInstanceId(inst.getProcessInstanceId()); ncNodeService.updateById(curedProgramPackage); } return inst.getProcessInstanceId(); return result; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
@@ -81,6 +81,11 @@ return programProperties; } /** * ä»mapä¸èµå¼æµç¨ä¾¿å©å°vo * @param programProperties vo * @param vars åémap */ void copyFlowPropertiesFromMap(FlowProgramProperties programProperties,Map<String, Object> vars){ programProperties.setTitle(String.valueOf(vars.get(FlowContants.TITLE))); @@ -116,6 +121,8 @@ programProperties.setCheckerId(Func.toLong(vars.get(FlowContants.CHECKER))); programProperties.setSeniorId(Func.toLong(vars.get(FlowContants.SENIOR))); programProperties.setProgramNo(Func.toStr(vars.get(FlowContants.PROGRAM_NO))); programProperties.setActProgrammerId(Func.toLong(vars.get(FlowVariableContants.ACT_PROGRAMMER))); } /** blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java
@@ -79,4 +79,7 @@ @Schema(description = "æ¯å¦ä¸´æ¶æµç¨:Y/N") private String isTempFlow; @Schema(description = "æ°æ§ç¨åºç¼å·") private String programNo; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowStartResult.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ package org.springblade.mdm.flow.vo; import lombok.Data; @Data public class FlowStartResult { private String processInstanceId; private String programNo; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskAssignVO.java
@@ -46,6 +46,11 @@ @Schema(description = "æ¯å¦ä¸´æ¶æµç¨ï¼å¼:Y/N") private String isTempFlow; @Schema(description = "任塿´¾å·¥è®°å½è¡¨id") private Long taskDispatchId; @Schema(description = "人åè责表idï¼çé¢ä¸é¶ä»¶å·å¹é ä¸ä¸ç¨æ·æå®ç") private Long producePlanId; /** * æ¯å¦ æª ç¨åºè¡¥å æµç¨ï¼ä¸´æ¶æµç¨ï¼ * @return æ¯å¦ blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java
@@ -31,7 +31,7 @@ private final NcNodeService ncNodeService; private final FlowCommonService flowCommonService; private final FlowProgramFileService flowProgramFileService; private final ProgramSeqService programSeqService; public static final String TRY_NAME = "è¯å"; public static final String CURE_NAME = "åºå"; public static final String DEVIATION_NAME = "å离"; @@ -235,8 +235,8 @@ ncNode.setDeviation(programProperties.getDeviation()); if(NcNode.TYPE_PROGRAM_PACKAGE.equals(nodeType)) {//ç¨åºå èç¹ï¼åé ç¨åºç¼å· String programNo = programSeqService.generageProgramNo(); ncNode.setProgramNo(programNo); ncNode.setProgramNo(programProperties.getProgramNo()); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ApproveTableService.java
@@ -9,6 +9,7 @@ import org.springblade.mdm.basesetting.machine.entity.Machine; import org.springblade.mdm.basesetting.machine.service.MachineService; import org.springblade.mdm.commons.service.ParamService; import org.springblade.mdm.commons.service.UserCommonService; import org.springblade.mdm.flow.constants.FlowContants; import org.springblade.mdm.flow.entity.TaskDispatch; import org.springblade.mdm.flow.service.ApproveInfoQueryService; @@ -39,7 +40,7 @@ @Service public class ApproveTableService { @Autowired private NcNodeService ncNodeService; private UserCommonService userCommonService; @Autowired private MachineService machineService; @Autowired @@ -90,27 +91,28 @@ dispatchDateStr = DateUtil.format(approveInfo.getDispatchDate(), DATE_PATTERN); } dataMap.put("teamLeader",approveInfo.getTeamLeaderName()+"/"+dispatchDateStr); dataMap.put("startTime",dispatchDateStr);//工段è´è´£äºº/åå è´è´£äººæ´¾åºæ¶é´ dataMap.put("fuzeren",approveInfo.getProgrammerName());//è´è´£äºº int isProgram = 0; if(StringUtils.equals(props.getHasCuredProgram(),FlowContants.Y)){ //æ ¡å¯¹ä»»å¡ dataMap.put("jd", WordReplaceUtil.CHECKED); dataMap.put("bc", WordReplaceUtil.UNCHECKED); dataMap.put("bz", WordReplaceUtil.UNCHECKED); }else{ //ç¼ç¨ä»»å¡ dataMap.put("jd", WordReplaceUtil.UNCHECKED); dataMap.put("bc", WordReplaceUtil.CHECKED); dataMap.put("bz", WordReplaceUtil.CHECKED); } dataMap.put("programNo",dispatch.getProgramNo()); dataMap.put("fzy",WordReplaceUtil.CHECKED); dataMap.put("fzn",WordReplaceUtil.UNCHECKED); dataMap.put("fzy",WordReplaceUtil.CHECKED); //ä»¿ç æ¯ dataMap.put("fzn",WordReplaceUtil.UNCHECKED);//仿ç å¦ Date programDate = approveInfo.getCheckDate(); Date checkDate = approveInfo.getCheckDate(); String bianzhiDateStr = DateUtil.format(dispatch.getCreateTime(), DATE_PATTERN); String checkDateStr = " "; if (checkDate != null) { @@ -121,8 +123,9 @@ if (approveInfo.getApproveDate() != null) { approveDateStr = DateUtil.format(approveInfo.getApproveDate(), DATE_PATTERN); } dataMap.put("programmer",approveInfo.getProgrammerName()+"/"+bianzhiDateStr); String bianzhi = userCommonService.getUserNameById(dispatch.getCreateUser()); String bianzhiDateStr = DateUtil.format(dispatch.getCreateTime(), DATE_PATTERN); dataMap.put("bianzhi",bianzhi+"/"+bianzhiDateStr);//ç¼å¶ï¼è®¡åå/åèµ·æ¶é´ dataMap.put("jiaodui",approveInfo.getTeamLeaderName()+"/æ¶é´ä¸ç¡®å®"); dataMap.put("shenpi",approveInfo.getSeniorName()+"/æ¶é´ä¸ç¡®å®");