From 2c2413760b6467bf62402dba7338bd3bbcbd7341 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期二, 20 五月 2025 14:20:38 +0800
Subject: [PATCH] 添加产量报表功能页面

---
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java |  483 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 411 insertions(+), 72 deletions(-)

diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java
index f35a9ac..68cd9ce 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java
@@ -4,20 +4,16 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import com.mes.common.S7object;
-import com.mes.device.PlcParameterObject;
-import com.mes.md.entity.GlassInfo;
-import com.mes.md.entity.LineConfiguration;
-import com.mes.md.entity.Machine;
-import com.mes.md.entity.Tasking;
-import com.mes.md.mapper.GlassInfoMapper;
-import com.mes.md.mapper.TaskingMapper;
-import com.mes.md.service.GlassInfoService;
-import com.mes.md.service.TaskingService;
+import com.mes.md.entity.*;
+import com.mes.md.mapper.*;
+import com.mes.md.service.*;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -29,12 +25,30 @@
  * @author wu
  * @since 2024-08-28
  */
+@Slf4j
 @Service
 public class TaskingServiceImpl extends MPJBaseServiceImpl<TaskingMapper, Tasking> implements TaskingService {
     @Resource
     GlassInfoMapper glassInfoMapper;
+    @Resource
+    LineConfigurationMapper lineConfigurationMapper;
     @Autowired
     GlassInfoService glassInfoService;
+    @Autowired
+    private PrimitiveTaskService primitiveTaskService;
+
+    @Autowired
+    private ProjectService projectService;
+    @Autowired
+    private PrimitiveTaskMapper primitiveTaskMapper;
+
+    @Autowired
+    private MachineMapper machineMapper;
+    @Autowired
+    private LineConfigurationService lineConfigurationService;
+
+    @Autowired
+    KBBTLensSortingMapper kBBTLensSortingMapper;
 
     /**
      * @param machine
@@ -56,9 +70,70 @@
     }
 
     /**
+     * @param machine
+     * 鏌ヨ姝ょ嚎绾夸笂鏈畬宸ョ殑浠诲姟   (绾夸笂/姝e父)  鐨勬寜鎵爜ID鏌ヨ
+     * @return
+     */
+    @Override
+    public List<Tasking> findMachineTaskID(Machine machine,String scan_id) {
+        List<LineConfiguration> machineLineConfiguration=lineConfigurationMapper.selectJoinList(LineConfiguration.class,new MPJLambdaWrapper<LineConfiguration>()
+                .selectAll(LineConfiguration.class)
+                .eq(LineConfiguration::getMachineId,machine.getId()));
+        if(!machineLineConfiguration.isEmpty()){
+            //姝よ澶囩嚎璺湭瀹屽伐鐨� 鐨勪换鍔�
+            List<Tasking> list=baseMapper.selectJoinList(Tasking.class,new MPJLambdaWrapper<Tasking>()
+                    .selectAll(Tasking.class)
+                    .innerJoin(LineConfiguration.class,LineConfiguration::getId,Tasking::getLineConfigurationId)
+                    .eq(LineConfiguration::getLineId,machineLineConfiguration.get(0).getLineId())
+                    .eq(Tasking::getScanId,scan_id)
+                    .eq(Tasking::getGlassState,"姝e父")
+                    .eq(Tasking::getState,"绾夸笂")
+                    .ne(Tasking::getWorkState,"瀹屽伐")
+                    .orderByAsc(Tasking::getTaskSequence));
+            return list;
+        }else{
+            log.info("姝や换鍔D瀛樺湪浣嗘潯浠朵笉婊¤冻锛歿}",scan_id);
+        }
+        return null;
+    }
+    /**
+     * @param tasking
+     * 浠诲姟缁撴潫
+     * @return
+     */
+    @Override
+    public int stopTasking(Tasking tasking){
+        //1.鏍囪鎬昏〃浠诲姟缁撴潫    2.鍒犻櫎tasking 琛�
+        tasking.setWorkState("瀹屽伐");
+        baseMapper.updateById(tasking);
+        //瀹屽伐     /鐮存崯/鎷胯蛋鐨勭幓鐠�
+        List<Tasking> taskingList=baseMapper.selectList(new QueryWrapper<Tasking>().lambda()
+                .eq(Tasking::getScanId,tasking.getScanId())
+                        .and(wrapper->wrapper
+                                .eq(Tasking::getWorkState,"瀹屽伐")
+                                .ne(Tasking::getState,"绾夸笅")
+                                .ne(Tasking::getGlassState,"鐮存崯"))
+
+        );
+        if(!taskingList.isEmpty()){
+            List<PrimitiveTask> primitiveTask=primitiveTaskMapper.selectList(new QueryWrapper<PrimitiveTask>().lambda()
+                    .eq(PrimitiveTask::getScanId,tasking.getScanId())
+                    .orderByDesc(PrimitiveTask::getId));
+            for(PrimitiveTask task:primitiveTask){
+                if (taskingList.size()==task.getTaskQuantity()){
+                    task.setReportCount(taskingList.size());
+                    task.setEndTime(new Date());
+                    primitiveTaskMapper.updateById(task);
+                    return baseMapper.delete(new QueryWrapper<Tasking>().lambda().eq(Tasking::getScanId,tasking.getScanId()));
+                }
+            }
+        }
+        return 0;
+    }
+    /**
      * @param machine锛寃orkState
      * 鏌ヨ褰撳墠璁惧锛岀嚎涓娿�愮瓑寰�/宸ヤ綔/瀹屽伐銆戠殑浠诲姟 鍗囧簭   (绾夸笂/姝e父)
-     * @return
+     * @return List<Tasking>
      */
     @Override
     public List<Tasking> findMachineWorkStateTask(Machine machine, String workState) {
@@ -73,7 +148,20 @@
                 .orderByAsc(Tasking::getTaskSequence));
         return list;
     }
-
+    /**
+     *
+     * 鏌ヨ绾夸笅姝e父鐨勭幓鐠�
+     * @return List<Tasking> findDownLineTask();
+     */
+    @Override
+    public List<Tasking> findDownLineTask() {
+        List<Tasking> list=baseMapper.selectJoinList(Tasking.class,new MPJLambdaWrapper<Tasking>()
+                .selectAll(Tasking.class)
+                .eq(Tasking::getGlassState,"姝e父")
+                .eq(Tasking::getState,"绾夸笅")
+                .orderByAsc(Tasking::getTaskSequence));
+        return list;
+    }
 
     /**
      * @param machine
@@ -85,10 +173,98 @@
         List<Tasking> list=this.findMachineWorkStateTask(machine,"绛夊緟");
         if(!list.isEmpty()){
             Tasking tasking=list.get(0);
+            LineConfiguration thisLineConfiguration=lineConfigurationMapper.selectById(tasking.getLineConfigurationId());
+            tasking.setOperationRecord(thisLineConfiguration.getRemark()+thisLineConfiguration.getLineId());
+            tasking.setOperationRecordTime(new Date());
+            tasking.setOperationMode("寮�濮�");
             tasking.setWorkState("姝e湪宸ヤ綔");
             if(baseMapper.updateById(tasking)>0){
                 return tasking;
             };
+        }
+        return null;
+    }
+    /**
+     * @param machine
+     * 褰撳墠璁惧鏍囪姝e湪宸ヤ綔锛氶獙璇佺姝D鏄惁鏄� 绾夸笂绛夊緟鐨勪换鍔$涓�鏉�
+     * @return
+     */
+    @Override
+    public Tasking startMachineTask(Machine machine, String scan_id) {
+        //List<Tasking> list=this.findMachineWorkStateTask(machine,"绛夊緟");
+        List<Tasking> list=baseMapper.selectJoinList(Tasking.class,new MPJLambdaWrapper<Tasking>()
+                .selectAll(Tasking.class)
+                .innerJoin(LineConfiguration.class,LineConfiguration::getId,Tasking::getLineConfigurationId)
+                .innerJoin(Machine.class,Machine::getId,LineConfiguration::getMachineId)
+                .eq(LineConfiguration::getMachineId,machine.getId())
+                .eq(Tasking::getGlassState,"姝e父")
+                .eq(Tasking::getState,"绾夸笂")
+                .eq(Tasking::getScanId,scan_id)
+                .eq(Tasking::getWorkState,"绛夊緟")
+                .orderByAsc(Tasking::getTaskSequence));
+        if(!list.isEmpty()){
+            Tasking tasking=list.get(0);
+            if(scan_id.equals(tasking.getScanId())){
+                LineConfiguration thisLineConfiguration=lineConfigurationMapper.selectById(tasking.getLineConfigurationId());
+                tasking.setOperationRecord(thisLineConfiguration.getRemark()+thisLineConfiguration.getLineId());
+                tasking.setOperationRecordTime(new Date());
+                tasking.setOperationMode("寮�濮�");
+                tasking.setWorkState("姝e湪宸ヤ綔");
+                if(baseMapper.updateById(tasking)>0){
+                    return tasking;
+                };
+            }
+        }
+        return null;
+    }
+
+    /**
+     * @param machine
+     * 褰撳墠 鎵爜ID  鏄惁鍦ㄥ綋鍓嶈澶囦互鍓嶅瓨鍦�  瀛樺湪鍒欑洿鎺ヨ烦鍒板綋鍓嶈澶�  骞朵笖鏍囪宸ヤ綔
+     * @return
+     */
+    @Override
+    public Tasking startScanIdMachineTask(Machine machine, String scan_id) {
+        //鎵惧綋鍓嶈澶囩嚎璺�
+        List<LineConfiguration> machineLineConfiguration=lineConfigurationMapper.selectJoinList(LineConfiguration.class,new MPJLambdaWrapper<LineConfiguration>()
+                .selectAll(LineConfiguration.class)
+                .eq(LineConfiguration::getMachineId,machine.getId()));
+        if(!machineLineConfiguration.isEmpty()){
+            //姝よ澶囩嚎璺湭瀹屽伐鐨� 鐨勪换鍔�
+            List<Tasking> list=baseMapper.selectJoinList(Tasking.class,new MPJLambdaWrapper<Tasking>()
+                    .selectAll(Tasking.class)
+                    .innerJoin(LineConfiguration.class,LineConfiguration::getId,Tasking::getLineConfigurationId)
+                    .eq(LineConfiguration::getLineId,machineLineConfiguration.get(0).getLineId())
+                    .eq(Tasking::getScanId,scan_id)
+                    .eq(Tasking::getGlassState,"姝e父")
+                    .eq(Tasking::getState,"绾夸笂")
+                    .ne(Tasking::getWorkState,"瀹屽伐")
+                    .le(LineConfiguration::getProcessSequence,machineLineConfiguration.get(0).getProcessSequence())
+                    .orderByAsc(Tasking::getTaskSequence));
+            if(!list.isEmpty()){
+                Tasking tasking=list.get(0);
+                Integer taskSequence=1;
+                if (machine.getTodayCount()>0&&machine.getTodayCount()<5000){
+                    taskSequence=machine.getTodayCount()+1;
+                }else{
+                    taskSequence=1;
+                }
+                machine.setTodayCount(taskSequence);
+                machineMapper.updateById(machine);
+                tasking.setTaskSequence(taskSequence);
+
+                tasking.setWorkState("姝e湪宸ヤ綔");
+                tasking.setLineConfigurationId(machineLineConfiguration.get(0).getId());
+                //璁板綍璁惧寮�濮嬫椂闂�
+                tasking.setOperationRecord(machineLineConfiguration.get(0).getRemark()+machineLineConfiguration.get(0).getLineId());
+                tasking.setOperationRecordTime(new Date());
+                tasking.setOperationMode("寮�濮�");
+
+                if(baseMapper.updateById(tasking)>0){
+                    finishMachineTask(machine);
+                    return tasking;
+                }
+            }
         }
         return null;
     }
@@ -99,12 +275,92 @@
      * @return
      */
     @Override
+    public int finishMachineTask(Machine machine,Integer taskSequence) {
+        List<Tasking> list=baseMapper.selectJoinList(Tasking.class,new MPJLambdaWrapper<Tasking>()
+                .selectAll(Tasking.class)
+                .innerJoin(LineConfiguration.class,LineConfiguration::getId,Tasking::getLineConfigurationId)
+                .innerJoin(Machine.class,Machine::getId,LineConfiguration::getMachineId)
+                .eq(LineConfiguration::getMachineId,machine.getId())
+                .eq(Tasking::getGlassState,"姝e父")
+                .eq(Tasking::getState,"绾夸笂")
+                .eq(Tasking::getTaskSequence,taskSequence)
+                .eq(Tasking::getWorkState,"姝e湪宸ヤ綔")
+                .orderByAsc(Tasking::getTaskSequence));
+        //褰撳墠璁惧鐨勭嚎璺厤缃�
+        List<LineConfiguration> machineLineConfiguration=lineConfigurationMapper.selectJoinList(LineConfiguration.class,new MPJLambdaWrapper<LineConfiguration>()
+                .selectAll(LineConfiguration.class)
+                .eq(LineConfiguration::getMachineId,machine.getId()));
+        if(!machineLineConfiguration.isEmpty()){
+            List<LineConfiguration> listLineConfiguration=lineConfigurationMapper.selectJoinList(LineConfiguration.class,new MPJLambdaWrapper<LineConfiguration>()
+                    .selectAll(LineConfiguration.class)
+                    .eq(LineConfiguration::getLineId,machineLineConfiguration.get(0).getLineId())
+                    .eq(LineConfiguration::getIsStart,1)
+                    .gt(LineConfiguration::getProcessSequence,machineLineConfiguration.get(0).getProcessSequence())
+                    .orderByAsc(LineConfiguration::getProcessSequence)
+                    .orderByAsc(LineConfiguration::getPrioritySequence)
+            );
+            if(!list.isEmpty()){
+                Tasking tasking=list.get(0);
+                if (!listLineConfiguration.isEmpty()){
+                    LineConfiguration thisLineConfiguration=lineConfigurationMapper.selectById(tasking.getLineConfigurationId());
+                    tasking.setOperationRecord(thisLineConfiguration.getRemark()+thisLineConfiguration.getLineId());
+                    tasking.setOperationRecordTime(new Date());
+                    tasking.setOperationMode("缁撴潫");
+                    tasking.setLineConfigurationId(listLineConfiguration.get(0).getId());
+                    tasking.setWorkState("绛夊緟");
+                    return baseMapper.updateById(tasking);
+                }else{
+                    return this.stopTasking(tasking);
+                }
+
+            }
+        }
+        return 0;
+    }
+
+    /**
+     * @param machine
+     * 褰撳墠璁惧鏍囪瀹屾垚锛氭鍦ㄥ伐浣滅殑绗竴涓换鍔�   (绾夸笂/姝e父)   杩斿洖瀹屾垚鏁伴噺
+     * @return
+     */
+    @Override
     public int finishMachineTask(Machine machine) {
         List<Tasking> list=this.findMachineWorkStateTask(machine,"姝e湪宸ヤ綔");
-        if(!list.isEmpty()){
-            Tasking tasking=list.get(0);
-            tasking.setWorkState("瀹屽伐");
-            return baseMapper.updateById(tasking);
+        //鏌ヨ褰撳墠璁惧绾胯矾閰嶇疆
+        List<LineConfiguration> machineLineConfiguration=lineConfigurationMapper.selectJoinList(LineConfiguration.class,new MPJLambdaWrapper<LineConfiguration>()
+                .selectAll(LineConfiguration.class)
+                .eq(LineConfiguration::getMachineId,machine.getId()));
+        if(!machineLineConfiguration.isEmpty()){
+            //褰撳墠璁惧瀛樺湪绾胯矾閰嶇疆锛屾煡璇㈠綋鍓嶈澶� 鍦ㄧ嚎璺厤缃〃涓殑涓嬩竴璁惧
+            List<LineConfiguration> listLineConfiguration=lineConfigurationMapper.selectJoinList(LineConfiguration.class,new MPJLambdaWrapper<LineConfiguration>()
+                    .selectAll(LineConfiguration.class)
+                    .eq(LineConfiguration::getLineId,machineLineConfiguration.get(0).getLineId())
+                    .eq(LineConfiguration::getIsStart,1)
+                    .gt(LineConfiguration::getProcessSequence,machineLineConfiguration.get(0).getProcessSequence())
+                    .orderByAsc(LineConfiguration::getProcessSequence)
+                    .orderByAsc(LineConfiguration::getPrioritySequence)
+            );
+
+            if(!list.isEmpty()){
+                //鏍囪浠诲姟鐘舵��
+                Tasking tasking=list.get(0);
+                LineConfiguration thisLineConfiguration=lineConfigurationMapper.selectById(tasking.getLineConfigurationId());
+                tasking.setOperationRecord(thisLineConfiguration.getRemark()+thisLineConfiguration.getLineId());
+                tasking.setOperationRecordTime(new Date());
+                tasking.setOperationMode("缁撴潫");
+                //listLineConfiguration涓嶆槸绌�,琛ㄧず褰撳墠璁惧閰嶇疆鍏崇郴涓湁涓嬩竴璁惧
+                // 鍚﹀垯琛ㄧず鏃犱笅涓�宸ュ簭锛屽嵆褰撳墠宸ュ簭涓烘渶鍚庝竴宸ュ簭 鏍囪鐘舵�佸畬宸�
+                if (!listLineConfiguration.isEmpty()){
+                    tasking.setLineConfigurationId(listLineConfiguration.get(0).getId());
+                    tasking.setWorkState("绛夊緟");
+                    return baseMapper.updateById(tasking);
+                }
+                else{
+                    tasking.setWorkState("瀹屽伐");
+                    return baseMapper.updateById(tasking);
+                }
+
+            }
         }
         return 0;
     }
@@ -126,12 +382,37 @@
                 .orderByDesc(Tasking::getTaskSequence));
         if(!list.isEmpty()){
             Tasking tasking=list.get(0);
+            LineConfiguration thisLineConfiguration=lineConfigurationMapper.selectById(tasking.getLineConfigurationId());
+            tasking.setOperationRecord(thisLineConfiguration.getRemark()+thisLineConfiguration.getLineId());
+            tasking.setOperationRecordTime(new Date());
+            tasking.setOperationMode("浜哄伐");
             tasking.setWorkState("绛夊緟");
             return baseMapper.updateById(tasking);
         }
         return 0;
     }
-
+    @Override
+    public int glassDownLineOne(Machine machine){
+        List<Tasking> list=baseMapper.selectJoinList(Tasking.class,new MPJLambdaWrapper<Tasking>()
+                .selectAll(Tasking.class)
+                .innerJoin(LineConfiguration.class,LineConfiguration::getId,Tasking::getLineConfigurationId)
+                .innerJoin(Machine.class,Machine::getId,LineConfiguration::getMachineId)
+                .eq(LineConfiguration::getMachineId,machine.getId())
+                .eq(Tasking::getGlassState,"姝e父")
+                .eq(Tasking::getState,"绾夸笂")
+                .eq(Tasking::getWorkState,"姝e湪宸ヤ綔")
+                .orderByDesc(Tasking::getTaskSequence));
+        if(!list.isEmpty()){
+            Tasking tasking=list.get(0);
+            LineConfiguration thisLineConfiguration=lineConfigurationMapper.selectById(tasking.getLineConfigurationId());
+            tasking.setOperationRecord(thisLineConfiguration.getRemark()+thisLineConfiguration.getLineId());
+            tasking.setOperationRecordTime(new Date());
+            tasking.setOperationMode("鑷姩");
+            tasking.setState("绾夸笅");
+            return baseMapper.updateById(tasking);
+        }
+        return 0;
+    }
     /**
      * @param tasking
      * 鐮存崯鐜荤拑锛�  (绾夸笂/姝e父)   杩斿洖鐮存崯鏁伴噺
@@ -141,6 +422,10 @@
     public int damagedTask(Tasking tasking) {
         Tasking oldTasking=baseMapper.selectById(tasking);
         if(!Objects.isNull(oldTasking)){
+            LineConfiguration thisLineConfiguration=lineConfigurationMapper.selectById(oldTasking.getLineConfigurationId());
+            oldTasking.setOperationRecord(thisLineConfiguration.getRemark()+thisLineConfiguration.getLineId());
+            oldTasking.setOperationRecordTime(new Date());
+            oldTasking.setOperationMode("浜哄伐");
             oldTasking.setGlassState("鐮存崯");
             return baseMapper.updateById(oldTasking);
         }
@@ -155,7 +440,11 @@
     public int glassDownLine(Tasking tasking) {
         Tasking oldTasking=baseMapper.selectById(tasking);
         if (!Objects.isNull(oldTasking)){
-            oldTasking.setState(tasking.getState());
+            LineConfiguration thisLineConfiguration=lineConfigurationMapper.selectById(oldTasking.getLineConfigurationId());
+            oldTasking.setOperationRecord(thisLineConfiguration.getRemark()+thisLineConfiguration.getLineId());
+            oldTasking.setOperationRecordTime(new Date());
+            oldTasking.setOperationMode("浜哄伐");
+            oldTasking.setState("绾夸笅");
             return baseMapper.updateById(oldTasking);
         }
         return 0;
@@ -179,62 +468,111 @@
         return resultCount;
     }
 
-    public int test(List<Tasking> taskingList) {
-        int resultCount=0;
-        //
-        return resultCount;
+    /**
+     * @param taskingList
+     * 鎵归噺淇敼鐘舵�� 銆愪笂绾裤��
+     * @return
+     */
+    @Override
+    public int glassTopLine(Tasking taskingList) {
+        //褰撳墠璁惧鐨勭嚎璺厤缃�
+        Long machineId=taskingList.getLineConfigurationId();
+        List<LineConfiguration> machineLineConfiguration=lineConfigurationMapper.selectJoinList(LineConfiguration.class,new MPJLambdaWrapper<LineConfiguration>()
+                .selectAll(LineConfiguration.class)
+                .eq(LineConfiguration::getMachineId,machineId));
+        if(!machineLineConfiguration.isEmpty()){
+            Tasking oldTasking=baseMapper.selectById(taskingList);
+            if (!Objects.isNull(oldTasking)){
+                oldTasking.setLineConfigurationId(machineLineConfiguration.get(0).getId());
+                oldTasking.setState("绾夸笂");
+                oldTasking.setWorkState("绛夊緟");
+                oldTasking.setGlassState("姝e父");
+                return baseMapper.updateById(oldTasking);
+            }
+        }
+        return 0;
     }
 
-//
-//    @Override
-//    public boolean updateStatus(Integer state) {
-//        //鏇存敼涓婄墖妯″紡
-//        //鍚戣澶囧彂閫侀�夋嫨鐨勭姸鎬�
-//        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("Status").getAddress(), state);
-//        //鍙戦�佸悗閲嶆柊璇诲彇鍒ゆ柇鏄惁鏇存敼鎴愬姛
-//        String loadStatus = plcParameterObject.getPlcParameter("Status").getValue();
-//        return state == Integer.parseInt(loadStatus);
-//
-//    }
-//
-//    /**
-//     * @param state
-//     * @return
-//     */
-//    @Override
-//    public boolean updateLoadState(Integer state) {
-//        //鏇存敼鑱旀満鐘舵��
-//        //鍚戣澶囧彂閫侀�夋嫨鐨勭姸鎬�
-//        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("loadState").getAddress(), state);
-//        //鍙戦�佸悗閲嶆柊璇诲彇鍒ゆ柇鏄惁鏇存敼鎴愬姛
-//        String loadState = plcParameterObject.getPlcParameter("loadState").getValue();
-//        return state == Integer.parseInt(loadState);
-//
-//    }
-//
-//    @Override
-//    public boolean updateDamage(Tasking tasking) {
-//        UpdateWrapper<Tasking> queryWrapper = new UpdateWrapper<>();
-//        queryWrapper.eq("glass_id",tasking.getGlassId())
-//                .set("work_state",tasking.getWorkState());
-//        return this.update(queryWrapper);
-//    }
-//
-//    @Override
-//    public List<Tasking> selectTasking() {
-//        QueryWrapper<Tasking> queryWrapper = new QueryWrapper<>();
-//        queryWrapper.orderByDesc("task_sequence");
-//        return list(queryWrapper);
-//    }
-//    @Override
-//    public Tasking selectTasking(Tasking tasking) {
-//        QueryWrapper<Tasking> queryWrapper = new QueryWrapper<>();
-//        queryWrapper.eq("line_configuration_id",tasking.getLineConfigurationId())
-//                .eq("state",tasking.getState())
-//                .eq("work_state",tasking.getWorkState())
-//                .orderByAsc("glass_id");
-//        return getOne(queryWrapper);
-//    }
+
+    /**
+     * @param machine
+     * 鎵爜璁惧 娣诲姞浠诲姟
+     * 鏌ョ湅PrimitiveTask琛ㄦ槸鍚﹀瓨鍦ㄦ鎵爜鏁版嵁
+     * 瀛樺湪鍒欐牴鎹� 鍐呭 鍒涘缓 tasking浠诲姟 骞舵帓搴�
+     * 涓嶅瓨鍦ㄥ垯 鏌ヨ涔濈墽鏁版嵁搴撴坊鍔� PrimitiveTask琛�
+     *
+     * @return
+     */
+    @Override
+    public int scanMachineAdd(Machine machine, String scanId){
+        String errorStr="";
+        if(!Objects.isNull(scanId)){
+            List<PrimitiveTask> primitiveTaskList=primitiveTaskMapper.selectList(new QueryWrapper<PrimitiveTask>().lambda()
+                    .eq(PrimitiveTask::getScanId,scanId));
+            if(primitiveTaskList.isEmpty()){
+                int insertCount=projectService.insertProjectCustomization(scanId);
+                errorStr="鎵爜ID锛�"+scanId+" 涔濈墽IT鏁版嵁搴撴湭涓嬪彂";
+                if (insertCount<1&&!errorStr.equals(machine.getRemark())){
+                    machine.setRemark(errorStr);
+                    machineMapper.updateById(machine);
+                    return 0;
+                }
+            }
+            primitiveTaskList=primitiveTaskMapper.selectList(new QueryWrapper<PrimitiveTask>().lambda()
+                    .eq(PrimitiveTask::getScanId,scanId));
+
+            if(!primitiveTaskList.isEmpty()){
+                PrimitiveTask primitiveTask=primitiveTaskList.get(0);
+                LineConfiguration lineConfiguration=lineConfigurationService.machineLineConfiguration(machine);
+                List<Tasking> listTasking=baseMapper.selectList(new QueryWrapper<Tasking>().lambda()
+                        .eq(Tasking::getScanId,scanId)
+                        .ne(Tasking::getLineConfigurationId,113)
+                        .ne(Tasking::getWorkState,"瀹屽伐")
+                        .ne(Tasking::getState,"绾夸笅")
+                        .ne(Tasking::getGlassState,"鐮存崯"));
+                Machine oneMachine=machineMapper.selectById(1L);
+                if((listTasking.size()<primitiveTaskList.get(0).getTaskQuantity())||oneMachine.getMode()==3){
+                    Tasking tasking=primitiveTaskService.convertListTasking(primitiveTask,lineConfiguration.getId());
+                    Integer taskSequence=1;
+                    if (machine.getTodayCount()>0&&machine.getTodayCount()<5000){
+                        taskSequence=machine.getTodayCount()+1;
+                    }else{
+                        taskSequence=1;
+                    }
+                    machine.setTodayCount(taskSequence);
+                    String Warehouse="";
+                    if (machine.getId()==24){
+                        List<KBBTLensSorting> list=kBBTLensSortingMapper.selectList(new QueryWrapper<KBBTLensSorting>().lambda()
+                                .eq(KBBTLensSorting::getBarcode,scanId)
+                                .notLike(KBBTLensSorting::getProductionName,"闃茬鑶�")
+                                .notLike(KBBTLensSorting::getProductionName,"纾ㄧ爞")
+                                .notLike(KBBTLensSorting::getProductionName,"鍊掕"));
+                        if (list.size()>0){
+                            Warehouse=list.get(0).getWarehouse();
+                        }
+                    }
+                    tasking.setWarehouse(Warehouse);
+                    tasking.setOperationRecord(lineConfiguration.getRemark()+lineConfiguration.getLineId());
+                    tasking.setOperationRecordTime(new Date());
+                    tasking.setOperationMode("鎻掑叆鏁版嵁");
+
+                    tasking.setTaskSequence(taskSequence);
+                    machineMapper.updateById(machine);
+                    return baseMapper.insert(tasking);
+                }
+                errorStr="鎵爜ID锛�"+scanId+" 绾夸笂鐜荤拑宸茶揪鍒颁笅鍙戜笂绾� 涓嬪彂浠诲姟鏁帮細"+primitiveTaskList.get(0).getTaskQuantity()+" 浜х嚎浠诲姟鏁�:"+listTasking.size();
+                if (!errorStr.equals(machine.getRemark())){
+                    machine.setRemark(errorStr);
+                    machineMapper.updateById(machine);
+                }
+            }
+
+        }
+        return 0;
+    }
+
+
+
     @Override
     public Boolean insertTasking(String status) {
         Tasking tasking = new Tasking();
@@ -271,6 +609,7 @@
         return save(tasking);
     }
 
+
     @Override
     public boolean updateTasking(String scanId) {
         Tasking glass=new Tasking();

--
Gitblit v1.8.0