|
@@ -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);
|
|
|
}
|
|
|
|
|
|
|