| 
															
																@@ -1,19 +1,25 @@ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 package com.zcxk.rmcp.web.service.impl; 
															 | 
															
															 | 
															
																 package com.zcxk.rmcp.web.service.impl; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import com.alibaba.fastjson.JSON; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import com.alibaba.fastjson.JSONObject; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.github.pagehelper.PageHelper; 
															 | 
															
															 | 
															
																 import com.github.pagehelper.PageHelper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.core.oauth2.pojo.LoginUser; 
															 | 
															
															 | 
															
																 import com.zcxk.core.oauth2.pojo.LoginUser; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.core.common.util.BeanCopyUtils; 
															 | 
															
															 | 
															
																 import com.zcxk.core.common.util.BeanCopyUtils; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.core.oauth2.util.UserUtil; 
															 | 
															
															 | 
															
																 import com.zcxk.core.oauth2.util.UserUtil; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.core.mysql.pageing.Pagination; 
															 | 
															
															 | 
															
																 import com.zcxk.core.mysql.pageing.Pagination; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.rmcp.api.dto.measurementSettlement.*; 
															 | 
															
															 | 
															
																 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.MeasurementRecordMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.rmcp.core.dao.MeasurementSettlementMapper; 
															 | 
															
															 | 
															
																 import com.zcxk.rmcp.core.dao.MeasurementSettlementMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.rmcp.core.entity.MeasurementSettlement; 
															 | 
															
															 | 
															
																 import com.zcxk.rmcp.core.entity.MeasurementSettlement; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.rmcp.web.service.MeasurementSettlementService; 
															 | 
															
															 | 
															
																 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.stereotype.Service; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import org.springframework.util.CollectionUtils; 
															 | 
															
															 | 
															
																 import org.springframework.util.CollectionUtils; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import javax.annotation.Resource; 
															 | 
															
															 | 
															
																 import javax.annotation.Resource; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import java.util.ArrayList; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import java.util.Date; 
															 | 
															
															 | 
															
																 import java.util.Date; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import java.util.List; 
															 | 
															
															 | 
															
																 import java.util.List; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 @Service 
															 | 
															
															 | 
															
																 @Service 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -22,7 +28,8 @@ public class MeasurementSettlementServiceImpl implements MeasurementSettlementSe 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     private MeasurementRecordMapper measurementRecordMapper; 
															 | 
															
															 | 
															
																     private MeasurementRecordMapper measurementRecordMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     @Resource 
															 | 
															
															 | 
															
																     @Resource 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     private MeasurementSettlementMapper measurementSettlementMapper; 
															 | 
															
															 | 
															
																     private MeasurementSettlementMapper measurementSettlementMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    @Autowired 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    private XxlJobUtil xxlJobUtil; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     @Override 
															 | 
															
															 | 
															
																     @Override 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     public Pagination<MeasurementSettlementDto> pageMeasurementSettlement(MeasurementSettlementPageDto pageDto) { 
															 | 
															
															 | 
															
																     public Pagination<MeasurementSettlementDto> pageMeasurementSettlement(MeasurementSettlementPageDto pageDto) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         MeasurementSettlement measurementSettlement=new MeasurementSettlement(); 
															 | 
															
															 | 
															
																         MeasurementSettlement measurementSettlement=new MeasurementSettlement(); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -60,10 +67,28 @@ public class MeasurementSettlementServiceImpl implements MeasurementSettlementSe 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         measurementSettlement.setCreateBy(currentUser.getName()); 
															 | 
															
															 | 
															
																         measurementSettlement.setCreateBy(currentUser.getName()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         measurementSettlement.setCreateDate(new Date()); 
															 | 
															
															 | 
															
																         measurementSettlement.setCreateDate(new Date()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         measurementSettlement.setStatus(1); 
															 | 
															
															 | 
															
																         measurementSettlement.setStatus(1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        measurementSettlement.setTenantId(currentUser.getTenantId()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        String tenantId=currentUser.getTenantId(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        measurementSettlement.setTenantId(tenantId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         measurementSettlement.setPlanStatus(0); 
															 | 
															
															 | 
															
																         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); 
															 | 
															
															 | 
															
																         measurementSettlementMapper.insert(measurementSettlement); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        //todo 提交xxl-job 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																     @Override 
															 | 
															
															 | 
															
																     @Override 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -74,17 +99,32 @@ public class MeasurementSettlementServiceImpl implements MeasurementSettlementSe 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         measurementSettlement.setUpdateBy(currentUser.getUsername()); 
															 | 
															
															 | 
															
																         measurementSettlement.setUpdateBy(currentUser.getUsername()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         measurementSettlement.setUpdateDate(new Date()); 
															 | 
															
															 | 
															
																         measurementSettlement.setUpdateDate(new Date()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         measurementSettlementMapper.update(measurementSettlement); 
															 | 
															
															 | 
															
																         measurementSettlementMapper.update(measurementSettlement); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        //todo 修改xxl-job 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        xxlJobUtil.update(measurementSettlement.getTaskId().intValue(),"0 * * * * ?",measurementSettlement.getPlanName()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																     @Override 
															 | 
															
															 | 
															
																     @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 
															 | 
															
															 | 
															
																     @Override 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     public void deleteAll() { 
															 | 
															
															 | 
															
																     public void deleteAll() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        List<MeasurementSettlementDto> measurementRecords = measurementSettlementMapper. 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                selectList(new MeasurementSettlement(),UserUtil.getCurrentUser().getUserCondition()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         measurementSettlementMapper.deleteAll(UserUtil.getCurrentUser().getUserCondition()); 
															 | 
															
															 | 
															
																         measurementSettlementMapper.deleteAll(UserUtil.getCurrentUser().getUserCondition()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        List<Integer>taskIds=new ArrayList<>(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        measurementRecords.forEach(measurementSettlementDto -> { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            taskIds.add(measurementSettlementDto.getTaskId().intValue()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        xxlJobUtil.removeAll(taskIds); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 |