| 
					
				 | 
			
			
				@@ -1,19 +1,25 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.zcxk.rmcp.web.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.github.pagehelper.PageHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zcxk.core.oauth2.pojo.LoginUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zcxk.core.common.util.BeanCopyUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zcxk.core.oauth2.util.UserUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zcxk.core.mysql.pageing.Pagination; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zcxk.rmcp.api.dto.measurementSettlement.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.zcxk.rmcp.api.vo.XxlJobInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zcxk.rmcp.core.dao.MeasurementRecordMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zcxk.rmcp.core.dao.MeasurementSettlementMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zcxk.rmcp.core.entity.MeasurementSettlement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zcxk.rmcp.web.service.MeasurementSettlementService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.zcxk.rmcp.web.util.XxlJobUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.util.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Service 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -22,7 +28,8 @@ public class MeasurementSettlementServiceImpl implements MeasurementSettlementSe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private MeasurementRecordMapper measurementRecordMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private MeasurementSettlementMapper measurementSettlementMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private XxlJobUtil xxlJobUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public Pagination<MeasurementSettlementDto> pageMeasurementSettlement(MeasurementSettlementPageDto pageDto) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MeasurementSettlement measurementSettlement=new MeasurementSettlement(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -60,10 +67,28 @@ public class MeasurementSettlementServiceImpl implements MeasurementSettlementSe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         measurementSettlement.setCreateBy(currentUser.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         measurementSettlement.setCreateDate(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         measurementSettlement.setStatus(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        measurementSettlement.setTenantId(currentUser.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String tenantId=currentUser.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        measurementSettlement.setTenantId(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         measurementSettlement.setPlanStatus(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        XxlJobInfo xxlJobInfo=new XxlJobInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        measurementSettlementDto.setTenantId(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobInfo.setExecutorParam(JSON.toJSONString(measurementSettlementDto)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobInfo.setJobDesc("执行结算:"+measurementSettlementDto.getPlanName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobInfo.setExecutorRouteStrategy("FIRST"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobInfo.setGlueType("BEAN"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobInfo.setJobCron("* * * * * ?"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobInfo.setExecutorHandler("demoJobHandler"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobInfo.setExecutorBlockStrategy("SERIAL_EXECUTION"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobInfo.setExecutorTimeout(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobInfo.setExecutorFailRetryCount(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobInfo.setAuthor("admin"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String add = xxlJobUtil.add(xxlJobInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        JSONObject jsonObject = JSON.parseObject(add); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String taskId = jsonObject.getString("content"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        measurementSettlement.setTaskId(Long.parseLong(taskId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         measurementSettlementMapper.insert(measurementSettlement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //todo 提交xxl-job 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -74,17 +99,32 @@ public class MeasurementSettlementServiceImpl implements MeasurementSettlementSe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         measurementSettlement.setUpdateBy(currentUser.getUsername()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         measurementSettlement.setUpdateDate(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         measurementSettlementMapper.update(measurementSettlement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //todo 修改xxl-job 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobUtil.update(measurementSettlement.getTaskId().intValue(),"0 * * * * ?",measurementSettlement.getPlanName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void deletePlan(List<Integer> ids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        measurementSettlementMapper.deletePlan(ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void deletePlan(List<MeasurementSettlementDto> ids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Integer>planIds=new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Integer>taskIds=new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ids.forEach(id->{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            planIds.add(id.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            taskIds.add(id.getTaskId().intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        measurementSettlementMapper.deletePlan(planIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobUtil.removeAll(taskIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void deleteAll() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<MeasurementSettlementDto> measurementRecords = measurementSettlementMapper. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                selectList(new MeasurementSettlement(),UserUtil.getCurrentUser().getUserCondition()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         measurementSettlementMapper.deleteAll(UserUtil.getCurrentUser().getUserCondition()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Integer>taskIds=new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        measurementRecords.forEach(measurementSettlementDto -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            taskIds.add(measurementSettlementDto.getTaskId().intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xxlJobUtil.removeAll(taskIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |