From d3df1630ad3e1c71b61d177ee818d5c5c94e97c0 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期六, 11 十月 2025 18:45:29 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/YiWuProject

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java |  189 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 189 insertions(+), 0 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
new file mode 100644
index 0000000..8df072d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
@@ -0,0 +1,189 @@
+package com.mes.engineering.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.mapper.EngineeringMapper;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.mapper.OptimizeProjectMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-22
+ */
+@Service
+@Slf4j
+
+public class EngineeringServiceImpl extends ServiceImpl<EngineeringMapper, Engineering> implements EngineeringService {
+
+    @Autowired
+    OptimizeProjectMapper optimizeProjectMapper;
+    @Autowired
+    private EngineeringMapper engineeringMapper;
+    @Autowired
+    private GlassInfoMapper glassInfoMapper;
+
+    //寮�濮�/鏆傚仠浠诲姟
+    @Override
+    public boolean changeTask(String projectId, Integer state) {
+        //鏆傚仠姝e湪杩涜宸ョ▼
+//        LambdaUpdateChainWrapper<Engineering> pauseWrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+//        pauseWrapper.set(Engineering::getState,0);
+//        pauseWrapper.eq(Engineering::getState,1);
+//        boolean pause = pauseWrapper.update();
+        //浣跨敤projectId浣滀负鏉′欢寮�濮嬪伐绋�
+        LambdaUpdateChainWrapper<Engineering> wrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+        wrapper.set(Engineering::getState, state);
+        wrapper.eq(Engineering::getEngineerId, projectId);
+        boolean pause = wrapper.update();
+        return pause;
+    }
+
+    @Override
+    @DS("pp")
+    public List<Engineering> selectEngineering(String engineeringId) {
+        //鏌ヨ閽㈠寲宸ョ▼淇℃伅
+        List<OptimizeProject> optimizeEngineerings = null;
+        if (engineeringId != null) {
+            QueryWrapper<OptimizeProject> wrapper = new QueryWrapper<>();
+            wrapper.select("project_no,project_name,avg_cut_pct,valid_cut_pct,last_cut_pct,glass_total,glass_total_area,raw_stock_qty,raw_stock_area,glass_type,remark ")
+                    .eq("project_no", engineeringId);
+            optimizeEngineerings = optimizeProjectMapper.selectList(wrapper);
+
+        }
+        List<Engineering> resultList = new ArrayList<>();
+// 閬嶅巻鏌ヨ缁撴灉璧嬪��
+        if (optimizeEngineerings != null) {
+            for (OptimizeProject map : optimizeEngineerings) {
+                // 鍒涘缓涓�涓柊鐨� OptimizeProject 瀵硅薄
+                Engineering engineering = new Engineering();
+                // 灏� Map 涓殑姣忎釜閿�煎鏄犲皠鍒� OptimizeProject 瀵硅薄鐨勭浉搴斿瓧娈典笂
+                engineering.setEngineerId(map.getProjectNo());//宸ョ▼id
+                engineering.setEngineerName(map.getProjectName());//宸ョ▼鍚嶇О
+                engineering.setAvgAvailability(map.getAvgCutPct());//骞冲潎浼樺寲鐜�
+                engineering.setValidAvailability(map.getValidCutPct());//鏈夋晥浼樺寲鐜�
+                engineering.setLastAvailability(map.getLastCutPct());//灏剧墖浼樺寲鐜�
+                engineering.setState(0);//鐘舵��
+                engineering.setGlassTotal(map.getGlassTotal());//灏忕墖鐜荤拑鎬绘暟
+                engineering.setGlassTotalArea(map.getGlassTotalArea());//灏忕墖鎬婚潰绉�
+                engineering.setPlanPatternTotal(map.getRawStockQty());//璁″垝鍘熺墖鎬绘暟
+                engineering.setPlanPatternTotalArea(map.getRawStockArea());//璁″垝鍘熺墖鎬婚潰绉�
+                engineering.setFilmsId(map.getGlassType());//鑶滅郴
+                engineering.setNotes(map.getRemark());//澶囨敞
+                // 灏嗘槧灏勫悗鐨勫璞℃坊鍔犲埌缁撴灉鍒楄〃涓�
+                resultList.add(engineering);
+            }
+        }
+        log.info("鏌ヨ鍑洪挗鍖栧伐绋嬮泦鍚堜繚瀛樺埌瀹炰綋绫粄}", resultList);
+        return resultList;
+    }
+
+    @Override
+    public void saveEngineering(List<Engineering> engineering) {
+        this.saveBatch(engineering);
+        //淇濆瓨閽㈠寲宸ョ▼淇℃伅
+    }
+
+    @Override
+    public Engineering selectInitiate(Integer state) {
+        //鏌ヨ鏄惁鏈夊紑濮嬩笂鐗囩殑宸ョ▼浠诲姟
+        QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+        wrapper.eq("state", state)
+                .last("limit 1");
+        return engineeringMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public Engineering selectInitiates(Integer state, Integer cell) {
+        //鏌ヨ鏄惁鏈夊紑濮嬩笂鐗囩殑宸ョ▼浠诲姟
+        QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+        wrapper.eq("state", state)
+                .eq("station_cell", cell)
+                .last("limit 1");
+        return engineeringMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public Engineering selectUpInitiate(String engineerId) {
+        QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+        wrapper.eq("engineer_id", engineerId)
+                .last("limit 1");
+        return engineeringMapper.selectOne(wrapper);
+
+    }
+
+    @Override
+    public GlassInfo selectGlassinfoIsnull(String engineerId) {
+        QueryWrapper<GlassInfo> wrapper = new QueryWrapper<>();
+        wrapper.eq("engineer_id", engineerId)
+                .last("limit 1");
+        return glassInfoMapper.selectOne(wrapper);
+
+    }
+
+    @Override
+    @DS("northGlassMes")
+    public List<Engineering> selectTask() {
+        //鏌ヨ鍙紑濮嬩换鍔$殑宸ョ▼
+        QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+        wrapper.eq("state", 5);
+        return engineeringMapper.selectList(wrapper);
+    }
+
+    @Override
+    public boolean pauseTask(String engineerId, Integer state) {
+        //鏆傚仠姝e湪杩涜宸ョ▼
+        LambdaUpdateChainWrapper<Engineering> pauseWrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+        pauseWrapper.set(Engineering::getState, 5);
+        pauseWrapper.eq(Engineering::getEngineerId, engineerId);
+        return pauseWrapper.update();
+    }
+
+    @Override
+    public boolean deleteTask(String engineerId) {
+        //鍒犻櫎宸ョ▼琛�
+//        QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+//        wrapper.eq("engineer_id", engineerId);
+//        return this.remove(wrapper);
+        //淇敼宸ョ▼琛ㄧ姸鎬�
+        return this.update(
+                new LambdaUpdateWrapper<Engineering>()
+                        .eq(Engineering::getEngineerId, engineerId)
+                        .set(Engineering::getState, 6)
+        );
+    }
+
+    @Override
+    public boolean changeTasks(Engineering engineering) {
+        //鏆傚仠姝e湪杩涜宸ョ▼
+        LambdaUpdateChainWrapper<Engineering> pauseWrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+        pauseWrapper.set(Engineering::getState, 0);
+        pauseWrapper.eq(Engineering::getState, 1);
+        pauseWrapper.eq(Engineering::getStationCell, engineering.getStationCell());
+        pauseWrapper.update();
+
+        LambdaUpdateChainWrapper<Engineering> wrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+        wrapper.set(Engineering::getState, engineering.getState());
+        wrapper.set(Engineering::getStationCell, engineering.getStationCell());
+        wrapper.eq(Engineering::getEngineerId, engineering.getEngineerId());
+        return wrapper.update();
+    }
+
+
+}

--
Gitblit v1.8.0