| 
					
				 | 
			
			
				@@ -275,18 +275,33 @@ public class TCntrnoServiceImpl implements ITCntrnoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public List<Map<String, Object>> getTCntrnoMessage(TCntrno tCntrno) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        StringBuffer stringBuffer = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> list = tCntrMapper.selectTCntrFNo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String sql = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<Map<String, Object>> getTCntrnoMessage(TCntrno tCntrno,List<String> list ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Map<String, Object>> mapList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StringBuffer stringBuffer = new StringBuffer();//查类型数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StringBuffer standBuffer = new StringBuffer();//查空重 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StringBuffer bareWeightBuffer = new StringBuffer();//查好坏 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String sql = null;//查类型数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String stand = null;//查空重 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String bareWeight = null;//查好坏 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (CollectionUtils.isNotEmpty(list)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (String s : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 stringBuffer.append("MAX( CASE WHEN tt.f_no = '" + s); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 stringBuffer.append("' THEN tt.typeidCount ELSE 0 END ) AS '" + s + "',"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                standBuffer.append("MAX( CASE WHEN a.typeName ='"+s+"' AND a.dict_label = '空'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                standBuffer.append("THEN a.efCount ELSE 0 END ) AS '" + s + "空',"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                standBuffer.append("MAX( CASE WHEN a.typeName ='"+s+"' AND a.dict_label = '重'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                standBuffer.append("THEN a.efCount ELSE 0 END ) AS '" + s + "重',"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bareWeightBuffer.append("MAX( CASE WHEN b.typeName ='"+s+"' AND b.dict_label = '好'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bareWeightBuffer.append("THEN b.statusCount ELSE 0 END ) AS '" + s + "好',"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bareWeightBuffer.append("MAX( CASE WHEN b.typeName ='"+s+"' AND b.dict_label = '坏'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bareWeightBuffer.append("THEN b.statusCount ELSE 0 END ) AS '" + s + "坏',"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sql = stringBuffer.subSequence(0, stringBuffer.length() - 1).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stand = standBuffer.subSequence(0, standBuffer.length() - 1).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bareWeight = bareWeightBuffer.subSequence(0, bareWeightBuffer.length() - 1).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mapList = tCntrnoMapper.getTCntrnoMessage(sql,stand,bareWeight,tCntrno); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return tCntrnoMapper.getTCntrnoMessage(sql, tCntrno); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return mapList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -298,6 +313,8 @@ public class TCntrnoServiceImpl implements ITCntrnoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String updateEFName = null;//空重 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isNotEmpty(tCntrno.getAddressName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             address = tCntrno.getAddressName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tCntrno.setfUpdateaddress("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isNotEmpty(tCntrno.getTypeidName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             typeidName = tCntrno.getTypeidName(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -318,11 +335,18 @@ public class TCntrnoServiceImpl implements ITCntrnoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<String> key = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         key.add("地点"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<String> list = tCntrMapper.selectTCntrFNo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> mapList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isNotEmpty(list)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (String s : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mapList.add(s+"空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mapList.add(s+"重"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mapList.add(s+"好"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mapList.add(s+"坏"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        list.addAll(mapList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Collections.sort(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         key.addAll(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        key.add("空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        key.add("重"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        key.add("好"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        key.add("坏"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -620,13 +644,18 @@ public class TCntrnoServiceImpl implements ITCntrnoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         case "动态日期": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             //设置单元格类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             cell.setCellType(CellType.STRING); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (StringUtils.isEmpty(cell.getStringCellValue())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            String dataFormatString = cell.getStringCellValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (StringUtils.isEmpty(dataFormatString)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 return AjaxResult.error("Excel箱信息数据第" + line + "行数据缺少动态日期"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            Date tDate = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            long localOffset = tDate.getTimezoneOffset() * 60000; //系统时区偏移 1900/1/1 到 1970/1/1 的 25569 天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            tDate.setTime((long) ((Double.valueOf(cell.getStringCellValue()) - 25569) * 24 * 3600 * 1000 + localOffset)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            companyMsg.setfUpdatetime(tDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Date parse = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                parse = simpleDateFormat.parse(dataFormatString); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                return AjaxResult.error("日期格式有误,正确格式如: 2021/9/2 15:11:22"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            companyMsg.setfUpdatetime(parse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         case "船名": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             //设置单元格类型 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -732,6 +761,10 @@ public class TCntrnoServiceImpl implements ITCntrnoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<TCntrno> addressMessageList = tCntrnoMapper.getBoxAddressMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //获取箱动态信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<SysDictData> fOpcTnsTaTus = sysDictDataMapper.selectDictDataByType("f_opctnstatus"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //获取箱空重状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<SysDictData> fUpdateEF = sysDictDataMapper.selectDictDataByType("f_updateEF"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //获取箱好坏状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<SysDictData> fCnTrStatus = sysDictDataMapper.selectDictDataByType("f_cntrstatus"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //在获取港口下的堆场对应的箱信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (CollectionUtils.isNotEmpty(boxPortMessage) && CollectionUtils.isNotEmpty(fOpcTnsTaTus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (TCntrno cntrno : boxPortMessage) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -741,27 +774,20 @@ public class TCntrnoServiceImpl implements ITCntrnoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (CollectionUtils.isNotEmpty(addressMessageList)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for (TCntrno trno : addressMessageList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (cntrno.getAddressName().equals(trno.getPortName()) && !trno.getAddressName().equals("在船")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            List<BoxMessage> boxMessageList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             BoxAddressMessage boxAddressMessage = new BoxAddressMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             boxAddressMessage.setAddress(trno.getAddressName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            boxAddressMessage.setNumberSize(fOpcTnsTaTus.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            List<BoxMessage> boxMessageList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            for (SysDictData opcTnsTaTus : fOpcTnsTaTus) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                TCntrno tro = new TCntrno(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                BoxMessage boxMessage = new BoxMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                tro.setfUpdateaddress(trno.getfUpdateaddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                tro.setfOpctnstatus(opcTnsTaTus.getDictValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                BoxMessage message = tCntrnoMapper.boxDistributionStatistics(tro); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if (message != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    boxMessage = message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                boxMessage.setOpcTnStatus(opcTnsTaTus.getDictLabel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                boxMessage.setUNIT(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()+boxMessage.getFORTYGP() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            +boxMessage.getFORTYHC()+boxMessage.getFORTYHR()+boxMessage.getFORTYOT()+boxMessage.getFORTYTK()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                boxMessage.setTEU(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()*2+boxMessage.getFORTYGP()*2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            +boxMessage.getFORTYHC()*2+boxMessage.getFORTYHR()*2+boxMessage.getFORTYOT()*2+boxMessage.getFORTYTK()*2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                boxMessageList.add(boxMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            boxAddressMessage.setNumberSize(fOpcTnsTaTus.size()+fUpdateEF.size()+fCnTrStatus.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            List<BoxMessage> opcTnsTaTus = this.getOpcTnsTaTus(fOpcTnsTaTus, trno);//获取调箱状态的箱新 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            List<BoxMessage> updateEF = this.getUpdateEF(fUpdateEF, trno);//获取空重的箱信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            List<BoxMessage> cnTrStatus = this.getCnTrStatus(fCnTrStatus, trno);//获取好坏的箱信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (CollectionUtils.isNotEmpty(opcTnsTaTus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                boxMessageList.addAll(opcTnsTaTus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (CollectionUtils.isNotEmpty(updateEF)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                boxMessageList.addAll(updateEF); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            }if (CollectionUtils.isNotEmpty(cnTrStatus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                boxMessageList.addAll(cnTrStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             boxAddressMessage.setBoxMessages(boxMessageList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             boxAddressMessageList.add(boxAddressMessage); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -770,28 +796,20 @@ public class TCntrnoServiceImpl implements ITCntrnoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             List<TCntrno> boxRemark = tCntrnoMapper.getBoxRemark(trno.getfUpdateaddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (CollectionUtils.isNotEmpty(boxRemark)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 for (TCntrno tCntrno : boxRemark) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    List<BoxMessage> boxMessageList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     BoxAddressMessage boxAddressMessage = new BoxAddressMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     boxAddressMessage.setAddress(trno.getAddressName()+tCntrno.getRemark()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    boxAddressMessage.setNumberSize(fOpcTnsTaTus.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    List<BoxMessage> boxMessageList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    for (SysDictData opcTnsTaTus : fOpcTnsTaTus) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        TCntrno tro = new TCntrno(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        BoxMessage boxMessage = new BoxMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        tro.setfUpdateaddress(trno.getfUpdateaddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        tro.setfOpctnstatus(opcTnsTaTus.getDictValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        tro.setRemark(tCntrno.getRemark()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        BoxMessage message = tCntrnoMapper.boxDistributionStatistics(tro); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        if (message != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            boxMessage = message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        boxMessage.setOpcTnStatus(opcTnsTaTus.getDictLabel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        boxMessage.setUNIT(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()+boxMessage.getFORTYGP() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                +boxMessage.getFORTYHC()+boxMessage.getFORTYHR()+boxMessage.getFORTYOT()+boxMessage.getFORTYTK()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        boxMessage.setTEU(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()*2+boxMessage.getFORTYGP()*2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                +boxMessage.getFORTYHC()*2+boxMessage.getFORTYHR()*2+boxMessage.getFORTYOT()*2+boxMessage.getFORTYTK()*2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        boxMessageList.add(boxMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    boxAddressMessage.setNumberSize(fOpcTnsTaTus.size()+fUpdateEF.size()+fCnTrStatus.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    List<BoxMessage> opcTnsTaTus = this.getOpcTnsTaTus(fOpcTnsTaTus, trno);//获取调箱状态的箱新 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    List<BoxMessage> updateEF = this.getUpdateEF(fUpdateEF, trno);//获取空重的箱信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    List<BoxMessage> cnTrStatus = this.getCnTrStatus(fCnTrStatus, trno);//获取好坏的箱信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (CollectionUtils.isNotEmpty(opcTnsTaTus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        boxMessageList.addAll(opcTnsTaTus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (CollectionUtils.isNotEmpty(updateEF)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        boxMessageList.addAll(updateEF); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    }if (CollectionUtils.isNotEmpty(cnTrStatus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        boxMessageList.addAll(cnTrStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     boxAddressMessage.setBoxMessages(boxMessageList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     boxAddressMessageList.add(boxAddressMessage); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -801,7 +819,7 @@ public class TCntrnoServiceImpl implements ITCntrnoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 boxDistributionStatistics.setBoxAddressMessages(boxAddressMessageList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                boxDistributionStatistics.setNumber(fOpcTnsTaTus.size()*boxAddressMessageList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxDistributionStatistics.setNumber(fOpcTnsTaTus.size()*boxAddressMessageList.size()+fUpdateEF.size()*boxAddressMessageList.size()+fCnTrStatus.size()*boxAddressMessageList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 list.add(boxDistributionStatistics); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -846,4 +864,83 @@ public class TCntrnoServiceImpl implements ITCntrnoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Object, Boolean> seen = new ConcurrentHashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 获取调箱动态的箱信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param fOpcTnsTaTus 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param trno 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<BoxMessage> getOpcTnsTaTus(List<SysDictData> fOpcTnsTaTus,TCntrno trno){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<BoxMessage> boxMessageList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isNotEmpty(fOpcTnsTaTus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (SysDictData opcTnsTaTus : fOpcTnsTaTus) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                TCntrno tro = new TCntrno(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BoxMessage boxMessage = new BoxMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tro.setfUpdateaddress(trno.getfUpdateaddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tro.setfOpctnstatus(opcTnsTaTus.getDictValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BoxMessage message = tCntrnoMapper.boxDistributionStatistics(tro); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (message != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    boxMessage = message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessage.setOpcTnStatus(opcTnsTaTus.getDictLabel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessage.setUNIT(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()+boxMessage.getFORTYGP() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getFORTYHC()+boxMessage.getFORTYHR()+boxMessage.getFORTYOT()+boxMessage.getFORTYTK()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessage.setTEU(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()*2+boxMessage.getFORTYGP()*2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getFORTYHC()*2+boxMessage.getFORTYHR()*2+boxMessage.getFORTYOT()*2+boxMessage.getFORTYTK()*2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessageList.add(boxMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return boxMessageList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<BoxMessage> getUpdateEF(List<SysDictData> fUpdateEF,TCntrno trno){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<BoxMessage> boxMessageList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isNotEmpty(fUpdateEF)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (SysDictData sysDictData : fUpdateEF) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                TCntrno tro = new TCntrno(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BoxMessage boxMessage = new BoxMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tro.setfUpdateaddress(trno.getfUpdateaddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tro.setfUpdateef(sysDictData.getDictValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BoxMessage message = tCntrnoMapper.boxDistributionStatistics(tro); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (message != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    boxMessage = message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessage.setOpcTnStatus(sysDictData.getDictLabel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessage.setUNIT(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()+boxMessage.getFORTYGP() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getFORTYHC()+boxMessage.getFORTYHR()+boxMessage.getFORTYOT()+boxMessage.getFORTYTK()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessage.setTEU(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()*2+boxMessage.getFORTYGP()*2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getFORTYHC()*2+boxMessage.getFORTYHR()*2+boxMessage.getFORTYOT()*2+boxMessage.getFORTYTK()*2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessageList.add(boxMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return boxMessageList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<BoxMessage> getCnTrStatus(List<SysDictData> fCnTrStatus,TCntrno trno){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<BoxMessage> boxMessageList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isNotEmpty(fCnTrStatus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (SysDictData cnTrStatus : fCnTrStatus) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                TCntrno tro = new TCntrno(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BoxMessage boxMessage = new BoxMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tro.setfUpdateaddress(trno.getfUpdateaddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tro.setfCntrstatus(cnTrStatus.getDictValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BoxMessage message = tCntrnoMapper.boxDistributionStatistics(tro); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (message != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    boxMessage = message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessage.setOpcTnStatus(cnTrStatus.getDictLabel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessage.setUNIT(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()+boxMessage.getFORTYGP() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getFORTYHC()+boxMessage.getFORTYHR()+boxMessage.getFORTYOT()+boxMessage.getFORTYTK()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessage.setTEU(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()*2+boxMessage.getFORTYGP()*2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        +boxMessage.getFORTYHC()*2+boxMessage.getFORTYHR()*2+boxMessage.getFORTYOT()*2+boxMessage.getFORTYTK()*2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boxMessageList.add(boxMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return boxMessageList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |