From 74be79541a69a064305ae1d5554d47cedab9f642 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期二, 14 十月 2025 16:52:40 +0800
Subject: [PATCH] 1、补充丢失的开始任务方法
---
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java | 123 +++++++++++++++++++++++++++++++++++-----
1 files changed, 106 insertions(+), 17 deletions(-)
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
index 2c9f493..d4820b7 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
@@ -4,15 +4,19 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.github.yulichang.query.MPJQueryWrapper;
+import com.mes.common.config.Const;
import com.mes.damage.entity.request.DamageRequest;
import com.mes.damage.service.DamageService;
import com.mes.engineering.entity.Engineering;
import com.mes.engineering.service.EngineeringService;
import com.mes.pp.entity.OptimizeProject;
import com.mes.pp.mapper.OptimizeProjectMapper;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
import com.mes.uppattenusage.entity.OptimizeUpPattenUsage;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
@@ -22,12 +26,18 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
/**
* <p>
- * 鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
* </p>
*
* @author zhoush
@@ -45,12 +55,15 @@
DamageService damageService;
@Autowired
RedisUtil redisUtil;
+ @Resource
+ RawGlassStorageDetailsService rawGlassStorageDetailsService;
+
@Override
public List<UpPattenUsage> prioritylist() {
//鑾峰彇姝e湪涓婄墖鐨勪换鍔d
- Engineering engineering= engineeringService.selectInitiate(1);
+ Engineering engineering = engineeringService.selectInitiate(1);
//log.info("灏嗗弬鏁颁紶鍏ュ埌鏌ヨ绫婚噷{}",engineering);
- if(engineering!=null){
+ if (engineering != null) {
LambdaQueryWrapper<UpPattenUsage> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(UpPattenUsage::getEngineeringId, engineering.getEngineerId());
return this.list(wrapper);
@@ -65,7 +78,7 @@
//鑾峰彇姝e湪涓婄墖鐨勪换鍔d
Engineering engineering = engineeringService.selectInitiates(1, cell.getStationCell());
//log.info("灏嗗弬鏁颁紶鍏ュ埌鏌ヨ绫婚噷{}",engineering);
- if(engineering!=null){
+ if (engineering != null) {
LambdaQueryWrapper<UpPattenUsage> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(UpPattenUsage::getEngineeringId, engineering.getEngineerId());
if (cell.getState() != null) {
@@ -108,28 +121,28 @@
UpPattenUsage optimizeProject = new UpPattenUsage();
// 灏� Map 涓殑姣忎釜閿�煎鏄犲皠鍒� OptimizeProject 瀵硅薄鐨勭浉搴斿瓧娈典笂
optimizeProject.setEngineeringId(map.getProjectNo());
- optimizeProject.setFilmsId( map.getGlassType());
+ optimizeProject.setFilmsId(map.getGlassType());
optimizeProject.setWidth(map.getWidth());
- optimizeProject.setHeight( map.getHeight());
+ optimizeProject.setHeight(map.getHeight());
optimizeProject.setThickness(map.getGlassThickness());
- optimizeProject.setLayoutSequence( map.getStockId());
+ optimizeProject.setLayoutSequence(map.getStockId());
optimizeProject.setState(0);
// 灏嗘槧灏勫悗鐨勫璞℃坊鍔犲埌缁撴灉鍒楄〃涓�
resultList.add(optimizeProject);
}
}
- log.info("鏌ヨ鍑轰笂鐗囬『搴忛泦鍚堜繚瀛樺埌瀹炰綋绫粄}",resultList);
+ log.info("鏌ヨ鍑轰笂鐗囬『搴忛泦鍚堜繚瀛樺埌瀹炰綋绫粄}", resultList);
return resultList;
}
@Override
public void saveUpPattenUsage(List<UpPattenUsage> upPattenUsage) {
- if (CollectionUtil.isEmpty(upPattenUsage)){
+ if (CollectionUtil.isEmpty(upPattenUsage)) {
return;
}
String engineerId = upPattenUsage.get(0).getEngineeringId();
int count = this.count(new LambdaQueryWrapper<UpPattenUsage>().eq(UpPattenUsage::getEngineeringId, engineerId));
- if (count <=0){
+ if (count <= 0) {
//淇濆瓨鍘熺墖浣跨敤璇︽儏琛�
this.saveBatch(upPattenUsage);
}
@@ -163,17 +176,16 @@
@Override
public void deleteTask(String engineerId) {
QueryWrapper<UpPattenUsage> wrapper = new QueryWrapper<>();
- wrapper.eq("engineering_id",engineerId);
+ wrapper.eq("engineering_id", engineerId);
this.remove(wrapper);
}
-
@Override
public UpPattenUsage selectOverTask() {
- QueryWrapper<UpPattenUsage>wrapper = new QueryWrapper<>();
- wrapper.gt("state",0)
- .lt("state",99)
+ QueryWrapper<UpPattenUsage> wrapper = new QueryWrapper<>();
+ wrapper.gt("state", 0)
+ .lt("state", 99)
.last("limit 1");
return this.getOne(wrapper);
}
@@ -181,8 +193,8 @@
@Override
//鑾峰彇鏈�鍚庝竴鍧楃幓鐠�
public UpPattenUsage selectSequence(UpPattenUsage upPattenUsage) {
- QueryWrapper<UpPattenUsage>wrapper = new QueryWrapper<>();
- wrapper.eq("engineering_id",upPattenUsage.getEngineeringId())
+ QueryWrapper<UpPattenUsage> wrapper = new QueryWrapper<>();
+ wrapper.eq("engineering_id", upPattenUsage.getEngineeringId())
.orderByDesc("layout_sequence")
.last("limit 1");
return this.getOne(wrapper);
@@ -229,4 +241,81 @@
damageService.autoSubmitReport(request.getGlassId(), request.getLine(), request.getWorkingProcedure(), "涓婄墖鏈�", request.getState());
return "success";
}
+
+ @Override
+ public Boolean insertTask(Integer quantity, Integer slot) {
+ engineeringService.update(
+ new LambdaUpdateWrapper<Engineering>()
+ .eq(Engineering::getState, Const.ENGINEERING_RUNNING)
+ .set(Engineering::getState, Const.ENGINEERING_SUCCESS)
+ );
+
+
+ Calendar calendar = Calendar.getInstance();
+ // 褰撳ぉ 00:00:00
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ Date todayStart = calendar.getTime();
+
+ // 褰撳ぉ 23:59:59
+ calendar.set(Calendar.HOUR_OF_DAY, 23);
+ calendar.set(Calendar.MINUTE, 59);
+ calendar.set(Calendar.SECOND, 59);
+ calendar.set(Calendar.MILLISECOND, 999);
+ Date todayEnd = calendar.getTime();
+
+ // 2. 鏋勫缓鏌ヨ鏉′欢锛氱姸鎬佷负鈥滆繍琛屼腑鈥� + 鏃堕棿鍦ㄥ綋澶╄寖鍥村唴
+ Integer count = engineeringService.count(
+ new LambdaQueryWrapper<Engineering>()
+ .eq(Engineering::getState, Const.ENGINEERING_RUNNING) // 鍘熺姸鎬佹潯浠�
+ // 鏍稿績锛歝reateTime 澶т簬绛変簬褰撳ぉ寮�濮嬶紝灏忎簬绛変簬褰撳ぉ缁撴潫
+ .ge(Engineering::getCreateTime, todayStart)
+ .le(Engineering::getCreateTime, todayEnd)
+ );
+ RawGlassStorageDetails rawGlassStorageDetails = rawGlassStorageDetailsService.getOne(
+ new LambdaQueryWrapper<RawGlassStorageDetails>()
+ .eq(RawGlassStorageDetails::getSlot, slot)
+ .eq(RawGlassStorageDetails::getState, 100)
+ );
+ String engineerId = generateSingleProjectNo(count);
+ Engineering engineering = new Engineering();
+ engineering.setEngineerId(engineerId);
+ engineering.setEngineerName(rawGlassStorageDetails.getFilmsId());
+ engineering.setState(5);
+ engineering.setPlanPatternTotal(slot);
+ engineering.setFilmsId(rawGlassStorageDetails.getFilmsId());
+ engineeringService.save(engineering);
+
+ for (int i = 1; i <= quantity; i++) {
+ UpPattenUsage saveDetails = new UpPattenUsage();
+ saveDetails.setEngineeringId(engineerId);
+ saveDetails.setFilmsId(rawGlassStorageDetails.getFilmsId());
+ saveDetails.setWidth(rawGlassStorageDetails.getPatternWidth());
+ saveDetails.setHeight(rawGlassStorageDetails.getPatternHeight());
+ saveDetails.setThickness(rawGlassStorageDetails.getPatternThickness());
+ saveDetails.setLayoutSequence(i);
+ saveDetails.setState(0);
+ this.save(saveDetails);
+ }
+ return Boolean.TRUE;
+ }
+
+ private static String generateSingleProjectNo(int currentCount) {
+ // 1. 鍥哄畾鍓嶇紑 "P"
+ final String PREFIX = "P";
+
+ // 2. 鏍煎紡鍖栧綋鍓嶆棩鏈熶负銆屽勾2浣�+鏈�2浣�+鏃�2浣嶃�嶏紙濡�2025-05-08 鈫� "250508"锛�
+ DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyMMdd");
+ String dateStr = LocalDate.now().format(dateFormatter);
+
+ // 3. 璁$畻鏂板簭鍙凤紙宸叉湁鏁伴噺+1锛夛紝骞跺鐞嗏�滃皬浜�10琛�0鈥�
+ int newSequence = currentCount + 1;
+ // 鍏抽敭锛�%02d 琛ㄧず鍥哄畾2浣嶆暟瀛楋紝涓嶈冻鍒欒ˉ0锛�1鈫�"01"锛�9鈫�"09"锛�10鈫�"10"锛�
+ String formattedSequence = String.format("%02d", newSequence);
+
+ // 4. 鎷兼帴宸ョ▼鍙凤紙鍓嶇紑+鏃ユ湡+琛�0鍚庣殑搴忓彿锛�
+ return PREFIX + dateStr + formattedSequence;
+ }
}
--
Gitblit v1.8.0