From d34d3c83500d5a68715a280eee3d930c88291d71 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期日, 07 九月 2025 19:10:05 +0800
Subject: [PATCH] 增加新编程序统计;固化程序统计

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java |   84 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 81 insertions(+), 3 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java
index b8914d7..481ea03 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java
@@ -1,15 +1,25 @@
 
 package org.springblade.mdm.flow.service;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.mp.base.BizServiceImpl;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.commons.service.ParamService;
 import org.springblade.mdm.flow.entity.TaskDispatch;
 import org.springblade.mdm.flow.mapper.TaskDispatchMapper;
 import org.springblade.mdm.flow.vo.TaskAssignVO;
+import org.springblade.mdm.program.entity.DrawingNos;
+import org.springblade.mdm.program.mapper.DrawingNosMapper;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * 浠诲姟娲惧伐鏁版嵁 澶勭悊鏈嶅姟
@@ -20,19 +30,87 @@
 @Service
 @AllArgsConstructor
 public class TaskDispatchService  extends BizServiceImpl<TaskDispatchMapper, TaskDispatch> {
-
+	@Autowired
+	private ParamService paramService;
+	@Autowired
+	private DrawingNosMapper drawingNosMapper;
 	@Transactional(rollbackFor = Exception.class)
-	public long saveTask(TaskAssignVO startVO) {
+	public TaskDispatch saveTask(TaskAssignVO startVO,boolean isDup) {
 		TaskDispatch taskDispatch = new TaskDispatch();
 		BeanUtils.copyProperties(startVO, taskDispatch);
+		if(isDup){
+			taskDispatch.setStatus(TaskDispatch.STATUS_DUP);
+		}
 		this.save(taskDispatch);
 
-		return taskDispatch.getId();
+		addDrawingNos(taskDispatch.getDrawingNo());
+		return taskDispatch;
 	}
 
+	/**
+	 * 鍔爑浜轰笅鎷夋暟鎹�
+	 * @param drawingNo
+	 */
+	void addDrawingNos(String drawingNo){
+		DrawingNos data = drawingNosMapper.selectById(drawingNo);
+		if(data == null){
+			data = new DrawingNos();
+			data.setDrawingNo(drawingNo);
+			try {
+				drawingNosMapper.insert(data);
+			}catch (Exception e){
+				log.error("鍔犲叆闆剁粍浠跺彿涓嬫媺鏁版嵁閿欒");
+			}
+		}
+	}
+	/*
 	public void updateSuccess(long id, String instId) {
 		TaskDispatch taskDispatch = getById(id);
 		taskDispatch.setProcessInstanceId(instId);
+		taskDispatch.setStatus(TaskDispatch.STATUS_STARTED);
 		this.updateById(taskDispatch);
 	}
+
+	 */
+
+
+	/**
+	 * 妫�鏌ユ槸鍚﹂噸澶嶆淳宸�
+	 * @param startVO
+	 * @return
+	 */
+	public boolean checkIsDuplicate(TaskAssignVO startVO) {
+		if(startVO.isTemporaryFlow()){
+			//璇曞垏琛ュ厖锛屼笉楠岃瘉閲嶅
+			return false;
+		}
+
+		int taskDupDays = Func.toInt(paramService.taskDuplicateCheckDays());
+		LocalDateTime checkStartDate = LocalDateTime.now().minusDays(taskDupDays);
+		LambdaQueryChainWrapper<TaskDispatch> q = lambdaQuery().eq(TaskDispatch::getDrawingNo,startVO.getDrawingNo())
+			.eq(TaskDispatch::getProcessNo,startVO.getProcessNo())
+			//.eq(TaskDispatch::getProcessEdition,startVO.getProcessEdition())
+			.eq(TaskDispatch::getMachineCode,startVO.getMachineCode())
+			.gt(TaskDispatch::getCreateTime,checkStartDate);
+
+		long cnt = q.count();
+
+		return cnt > 0;
+	}
+	@Transactional(readOnly = true)
+	public List<String> drawingNoSeletDropList(String drawingNo){
+		return drawingNosMapper.selectDropDownList(drawingNo);
+	}
+
+	@Transactional
+	public void resetDrawingNos() {
+		drawingNosMapper.delete(Wrappers.emptyWrapper());//
+		List<String> dnoList =  baseMapper.distinctAllDrawingNo();
+		for(String dno : dnoList){
+			DrawingNos drawingNos = new DrawingNos();
+			drawingNos.setDrawingNo(dno);
+			drawingNosMapper.insert(drawingNos);
+		}
+
+	}
 }

--
Gitblit v1.9.3